객체지향 프로그래밍의 핵심 개념
class 클래스 이름 :
# 클래스 변수
count = 0
# 생성자 함수
def __init__(self, 추가적인 매개변수) :
self.변수 = 초기값 또는 매개변수 전달
self.__변수 # 프라이빗 변수
# 메소드 = 클래스에서 사용하는 함수
def 메소드 이름(self, 추가적인 매개변수) :
수행할 내용
return 값
# 클래스 함수
@classmethod :
def 함수이름(cls, 추가적인 매개변수) :
# example
class Test : # 클래스명은 캐멀케이스
def __init__(self) : # 생성자
self.va1 = 10 # 속성
self.__va2 = 20 # 프라이빗 변수
def func_sum(self) : # 메소드
return self.va1 + self.va2
def func_va(self, a, b) : # 세터(setter), 내부 매개변수 간접 변경
self.__va1 = a
self.__va2 = b
test1 = Test() # 객체 만들어지고 속성, 메소드는 test1에 들어감, test1은 인스턴스
print(test1.va1) # 인스턴스.속성
print(test1.va2)
print(test1.func_sum()) # 인스턴스.메소드
test1.va1 = 100
test1.va2 = 200 # 프라이빗 변수여서 내부에서 변경이 되지 않음
print(test1.va1) # 100 출력
print(test1.va2) # 30 출력, 프라이빗 변수여서 변경 불가능
test1.func_va(100, 200) # 프라이빗 변수 변경
print(test1.func_sum()) # 300 출력