본문 바로가기

classmethod3

Python 파이썬에서 "at" (@) 기호는 무엇을 하는가요?, What does the "at" (@) symbol do in Python? 질문 파이썬에서 @ 기호는 무엇을 하는 것인가요? 답변 @ 기호는 줄의 처음에서 클래스와 함수 데코레이터로 사용됩니다: PEP 318: 데코레이터 파이썬 데코레이터 가장 일반적인 파이썬 데코레이터는 다음과 같습니다: @property @classmethod @staticmethod 중간에 @이 있다면 행렬 곱셈일 가능성이 높습니다: @를 이진 연산자로 사용. 2023. 6. 25.
Python 클래스 (정적) 변수 및 메서드, Class (static) variables and methods 질문 파이썬에서 클래스(static) 변수 또는 메소드를 어떻게 생성하나요? 답변 클래스 정의 내부에 선언된 변수 중 메소드 내부에 선언되지 않은 변수는 클래스 또는 정적 변수입니다: >>> class MyClass: ... i = 3 ... >>> MyClass.i 3 @millerdev가 지적한 대로, 이렇게 하면 클래스 수준의 i 변수가 생성됩니다. 그러나 이는 인스턴스 수준의 i 변수와 구분되므로 다음과 같이 할 수 있습니다. >>> m = MyClass() >>> m.i = 4 >>> MyClass.i, m.i >>> (3, 4) 이는 C++ 및 Java와 다르지만, C#에서는 인스턴스에 대한 참조를 사용하여 정적 멤버에 액세스할 수 없습니다. Python 튜토리얼에서 클래스 및 클래스 객체에 .. 2023. 5. 7.
Python @staticmethod와 @classmethod의 차이점, Difference between @staticmethod and @classmethod 질문 데코레이트된 메소드와 @staticmethod로 데코레이트된 메소드, 그리고 @classmethod로 데코레이트된 메소드의 차이점은 무엇인가요? 답변 아래의 예제 코드를 보면서 이해해보세요: foo, class_foo, static_foo의 호출 시그니처의 차이점을 주목하세요: class A(object): def foo(self, x): print(f"executing foo({self}, {x})") @classmethod def class_foo(cls, x): print(f"executing class_foo({cls}, {x})") @staticmethod def static_foo(x): print(f"executing static_foo({x})") a = A() 아래는 객체 인스턴스가.. 2023. 5. 4.