-
연관
2020/06/21 - Python - 클래스 멤버 변수
@classmethod
클래스 함수 앞에 "@classmethod"를 선언할 경우 클래스 이름공간속에 있는 정적함수를 만들게 된다. C++에서 클래스 네임스페이스 속에 있는 static 함수와 유사.
클래스 네임스페이스 속에 있는 공용 변수(C++의 경우 static 변수, instance된 member 변수는 불가)를 접근할 수 있다.
class C7(): def __init__(self): self.mA = "A" @classmethod def c7f1(self): print("c7f1") @classmethod def c7f2(self): print("c7f2" + self.mA) def c7f3(self): print("c7f3" + self.mA) C7.c7f1() C7.c7f2() C7.c7f3() c7 = C7() c7.c7f2() C7.mA = "b" C7.c7f2() c7.c7f2() c7.c7f3()
>>> C7.c7f1() c7f1 >>> C7.c7f2() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 9, in c7f2 AttributeError: type object 'C7' has no attribute 'mA' >>> C7.c7f3() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: c7f3() missing 1 required positional argument: 'self' >>> c7 = C7() >>> c7.c7f2() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 9, in c7f2 AttributeError: type object 'C7' has no attribute 'mA' >>> C7.mA = "b" >>> C7.c7f2() c7f2b >>> c7.c7f2() c7f2b >>> c7.c7f3() c7f3A
'Python' 카테고리의 다른 글
Python - 플라스크(flask), 장고(django) (0) 2020.07.13 Vsc Python 준비 (0) 2020.07.03 Python - 클래스 멤버 변수 (1) 2020.06.21 Python - 인터페이스(interface) 클래스 (0) 2020.06.13 Python - 클래스 추상함수 구현 요구 (0) 2020.06.12 Python예제 - ctypes 데이터형 (0) 2019.03.05 Python예제 - ctypes 기초 (0) 2019.03.05 Python예제 - 콘솔창 타이틀 이름 변경, 얻기 (0) 2019.03.05