본문 바로가기
Programming Language/Python

[파이썬] DAY5 코딩확인 문제 20번 점검

by 9루트 2022. 1. 20.

7가지 정보를 하나의 객체가 가지고 있어야 한다.  -> 인스턴스 필드 

 

1. 클래스로 문제풀기

코딩 테스트 마지막 문제를 클래스로 풀어보자

class Car_data:
  def __init__(self,이름="", 엔진가격=0, 타이어가격=0, 옵션유무="", 옵션이름="", 최고속도=0):
    self.이름 = 이름
    self.엔진가격 = 엔진가격
    self.타이어가격 = 타이어가격 
    self.옵션유무 = 옵션유무
    self.옵션이름 = 옵션이름
    self.최고속도 = 최고속도
    self.구매가격 = 엔진가격 + 타이어가격

c1 = Car_data() # 차 한대의 정보를 담은 객체
c1.이름 = "자동차"
c1.엔진가격 = 400
c1.타이어가격 = 100
c1.옵션유무 = "있음"
c1.옵션이름 = "썬루프"
c1.최고속도 = 300
c1.구매가격 = c1.엔진가격 + c1.타이어가격


c2 = Car_data("슈퍼카", 1000, 200, "배기관", "있음", 400)


이름 = input("이름 입력: ")
엔진가격 = int(input("엔진가격: "))
타이어가격 = int(input("타이어가격: "))
옵션유무=input("옵션유무(있음/없음): ")
if 옵션유무 == "있음":
  옵션 = input("옵션: ")
else:
  옵션 = "없음"
최고속도 = int(input("최고속도: "))
c3=Car_data(이름, 엔진가격, 타이어가격, 옵션, 옵션유무, 최고속도)

위의 인스턴스 필드들은

인스턴스 메소드를 만들어서 접근해야 한다.

즉, 클래스에 def f(self) 넣어서 접근한다.

 

 

list( ) 는 리스트 클래스에 있는 생성자를 호출한다는 의미이다.

 

교재 p334 (어서와 파이썬은 처음이지)

split() : 해당 문자열 안의 , 자리에 공백을 넣어주는 클래스

isalpha() : 해당 문자열이 알파벳인지 아닌지 검토해주는 클래스

 

 

 

strip() : 해당 문자열의 앞 뒤 공백을 제거해주는 클래스

 

 


2. 캡슐성(은닉성)

변수 앞의 언더바 2개로 클래스 밖에서 안으로 접근하지 못하게 한다.

1) 비공개 속성

클래스 외부에서는 클래스 내부 변수에 접근 불가능하게 만든다.

 

2) 공개속성

은닉을 해도 클래스 내부에서는 내부 변수에 접근 가능


교재 p357

3. 접근자와 설정자

은닉성으로 감춰진 필드에 접근하는 방법: 선언된 클래스 안 멤버에 접근자나 설정자를 넣어 해당 클래스의 은닉된 멤버에 접근한다.

인스턴스 메소드로 만든다.

__x에게 접근하려면 클래스 내의 메소드(f)가 가능한다.

get set 을 이용한다.

 

 

 

메소드 또한 은닉할 수 있다.

내일 문제 푼다고 한다.