728x90
반응형
질문 : 파이썬에서 정적 클래스 변수가 가능합니까?
파이썬에서 정적 클래스 변수 나 메서드를 가질 수 있습니까? 이를 수행하려면 어떤 구문이 필요합니까?
답변
클래스 정의 내부에서 선언되었지만 메서드 내부가 아닌 변수는 클래스 또는 정적 변수입니다.
>>> 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 Library Reference의 "Built-in Functions" 아래에 문서화 된 정적 메서드 에 대해 이미 답변했습니다.
class C:
@staticmethod
def f(arg1, arg2, ...): ...
@beidy는 staticmethod보다 classmethod를 권장합니다. 메소드가 첫 번째 인수로 클래스 유형을 수신하기 때문입니다. 그러나 저는 여전히 staticmethod보다이 접근법의 장점에 대해 약간 모호합니다. 당신도 그렇다면 아마 상관 없을 것입니다.
출처 : https://stackoverflow.com/questions/68645/are-static-class-variables-possible-in-python
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python 파일의 일반적인 헤더 형식 (0) | 2022.01.17 |
---|---|
mysqldb python 인터페이스를 설치할 때 mysql_config를 찾을 수 없을 경우 (0) | 2022.01.17 |
Python의 '__enter__'및 '__exit__'설명 (0) | 2022.01.06 |
다른 Python 버전에서 가상 환경을 사용하는 방법 (0) | 2022.01.06 |
Python 여러 줄 문자열을 작성할 때 적절한 들여쓰기 (0) | 2021.12.19 |