728x90
class A:
    count = 0

    def __init__(self):
        A.count += 1

    def exclaim(self):
        print("I'm an A")

    @classmethod
    def kids(cls):
        print("A has", cls.count, "little objects.")


easy_a = A()
breezy_a = A()
wheezy_a = A()
A.kids()

 

class 메서드는 클래스 전체에 영향을 미친다.
class 에 어떤 변화는 모든 객체에 영향을 미친다.
클래스 정의에서 함수에 @classmethod 데커레이터가 있다면
이것은 클래스 메서드다.
또한 이 메서드의 첫 번째 매개변수는 클래스 자신이다.
파이썬 에서는 보통 이 클래스의 매개변수를 cls로 쓴다. class는 예약어기 때문에 사용할 수 없다.

 

결과 - A has 3 little objects.

728x90