'속성(attribute)과 '행동'(action)으로 이루어짐
예: 자동차: 바퀴 4개, 색깔, 의자, 핸들 등의 속성(attribute) 전진, 후진 등의 행동(action)을 가진 객체
파이썬에서 객체는 변수와 함수(method)로 이루어져있다.
객체를 조금 더 효율적으로 생성하기 위해서 만들어진 구문
class 클래스 이름:
클래스 내용
클래스 생성자
인스턴스 이름(변수 이름) = 클래스 이름() # 생성자 함수
클래스를 기반으로 만들어진 객체를 인스턴스라고 한다
생성자
클래스 이름과 같은 함수를 생성자라고 한다. 클래스 내부에 __init__ 이라는 함수를 만들면 객체를 생성할 때 처리할 내용을 작성할 수 있다.
class 클래스 이름:
def \__init__(self, 추가적인 매개변수): #클래스 내부의 함수는 첫 번째 매개변수로 반드시 self를 입력해야 한다
pass
메소드
클래스가 가지고 있는 함수를 메소드 라고 한다.
class 클래스 이름:
def 메소드 이름(self, 추가적인 매개변수): #클래스 내부의 함수는 첫 번째 매개변수로 반드시 self를 입력해야 한다
pass
클래스 변수
class 클래스 이름:
클래스 변수 = 값
접근시
클래스 이름.변수 이름
프라이빗 변수 : 클래스 내부의 변수를 외부에서 사용하는 것을 막고 싶을 떄 인스턴스 변수 이름을 __변수이름 형태로 선언한다.
게터와 세터 : 프라이빗 변수에 간접적으로 접근할 수 있는 방법, 데코레이터를 사용하여 만든다.
class Car:
def __init__(self):
self.__horsepower = 100
@property
def horsepower(self): #getter
return self.__horsepower
@horsepower.setter
def horsepower(self, str): #setter
self.__horsepower = str
출처: https://rednooby.tistory.com/54 [개발자의 취미생활]
class Parent:
def __init__(self)
self.value="테스트"
print("Parent 클래스의 __init()__ 메소드가 호출되었습니다 ")
def test(self):
print("Parent 클래스의 test() 메소드입니다.")
class Child(Parent)
def __init__(self):
Parent.__init__(self)
print("Child 클래스의 __init()__ 메소드가 호출되었습니다.")
child = Child()
child.test()
print(child.value)
결과
Parent 클래스의 __init()__ 메소드가 호출되었습니다
Child 클래스의 __init()__ 메소드가 호출되었습니다.
Parent 클래스의 test() 메소드입니다.
테스트
상속 super() 관련 참고자료