-
연관
2020/06/12 - Python - 클래스 함수(static, 정적, 공유)
클래스 멤버 변수 종류
클래스 인스턴스 멤버 변수.
인스턴스화 된 범위내에서만 유효한 멤버 변수.클래스 공유 멤버 변수.
인스턴스화 되지 않아도 공용으로 접근 가능하며 인스턴수화 된 것에서도 공용으로 접근 가능한 멤버 변수.클래스 인스턴스 멤버 변수
class Ca: def __init__(self): self.mV1 = "Ca.mV1"
클래스 공유 멤버 변수
class Ca: msV1 = "Ca.msV1"
중복된 이름 존재
공유 멤버 변수와 중복된 인스턴스 멤버 변수가 있음 여부에 따른 결과 차이.
멤버 변수가 중복된 것(공유, 인스턴스)이 있는 상황에서 변수를 조회할 경우 문제가 된다. 인스턴스에서 조회할 경우 인스턴스 멤버 변수가 연결 시킨다
class Ca: smA = 1 smB = 1 def __init__(self): self.smB = 10 pass @classmethod def fs(cls): cls.smA = 2 cls.smB = 2 def fm(self): smA = 3 smB = 3 >>> a = Ca() >>> a.fs() >>> a.fm() >>> Ca.smA 2 >>> Ca.smB 2 >>> a.smA 2 >>> a.smB 10 >>> >>> Ca.smA = 4 >>> Ca.fs() >>> Ca.smA 2 >>> a.smA 2 >>>
클래스 멤버 변수 덮어 쓰기
공유 멤버 변수와 같은 이름으로, 인스턴스 멤버 변수를 사용하는 시점부터 인스턴스 멤버 변수가 우선하여 사용된다.
class Ca: msInt1 = 99 >>> a = Ca() >>> a.msInt1 99 >>> Ca.msInt1 99 >>> Ca.msInt1 = 88 >>> a.msInt1 88 >>> a.msInt1 = 77 >>> Ca.msInt1 88 >>>
'Python' 카테고리의 다른 글
Python - 변수 존재 유무 확인 (1) 2020.07.13 Python - Flask 설치 (0) 2020.07.13 Python - 플라스크(flask), 장고(django) (0) 2020.07.13 Vsc Python 준비 (0) 2020.07.03 Python - 인터페이스(interface) 클래스 (0) 2020.06.13 Python - 클래스 함수(static, 정적, 공유) (0) 2020.06.12 Python - 클래스 추상함수 구현 요구 (0) 2020.06.12 Python예제 - ctypes 데이터형 (0) 2019.03.05