반응형
질문
파이썬에서 클래스(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 튜토리얼에서 클래스 및 클래스 객체에 대해 설명한 내용을 참조하십시오.
@Steve Johnson은 이미 정적 메소드에 대해 답변했으며, Python 라이브러리 참조의 "내장 함수"에서도 설명되어 있습니다.
class C:
@staticmethod
def f(arg1, arg2, ...): ...
@beidy는 classmethod를 정적 메소드보다 권장하며, 이 경우 메소드가 첫 번째 인수로 클래스 유형을 받습니다.
반응형
댓글