Python

파이썬 클래수 변수(Class Variable)

bornsoon 2024. 6. 21. 09:23
class Account:
    account_count = 0

    def __init__(self, name, balance):
        self.deposit_count = 0
        self.deposit_log = []
        self.withdraw_log = []

        Account.account_count += 1

    @classmethod
    def get_account_num(cls):
        print(cls.account_count)  # Account.account_count

account_count는 클래수 변수이기때문에
클래스명.변수명으로 접근해야 한다.
클래스 변수는 클래스를 정의한 영역에서 클래스 내부 또는 메서드 밖에 존재하는 변수이다.
이는 해당 클래스를 사용하는 모든 인스턴스에게 공용으로 사용되는 변수이다.


(인스턴스는 self.변수명으로 접근)
(self가 객체명을 넘겨주는 역할)
(객체명.메서드() < --> 클래스명.메서드(객체명))


# 클래스 메서드
@classmethod (장식자(데코레이터))
이걸 써주어서 클래스 매서드로 사용한다.
self로 인스턴스 변수를 접근할 수 없고 cls를 이용해서 클래스변수에 접근할 수 있다.


클래스 메서드를 호출할 때
kim.get_acconut_num()을 하면
Account.acconut_num()을 한 것과 같기때문에
lee.get_account_num()을 실행해도 결과값은 동일하다.

728x90