프로그래밍 언어/Python

파이썬에서 정적 클래스 변수를 사용하는 방법

Rateye 2022. 1. 17. 11:51
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
반응형