최근 클래스를 만들었습니다. 클래스가 아래와 같이 선언되었다고 가정 해 봅시다. 오류,Python : 클래스 자체의 정적 클래스 속성
class MyClass(object):
def __init__(self, modifiers):
....
CONSTANT_MEMBER_1 = MyClass(my_modifiers)
CONSTANT_MEMBER_2 = MyClass(my_modifiers)
불행하게도, 파이썬은 나에게 그렇게하도록 허용하지 않습니다 :
문제가class MyClass(object):
def __init__(self, modifiers):
....
, 나는 클래스의 상수 인스턴스를 생성 할
E NameError: global name 'MyClass' is not defined
이 문제에 대한 해결책은 무엇입니까?
한 가지 대안은 호출 될 때마다 동일한 객체를 반환하는 클래스에 '정적'메소드를 만드는 것입니다 (예 : MyClass.CONSTANT_MEMBER_1()
). 하지만 나는 여전히 MyClass.CONSTANT_MEMBER_1
을 사용하여 액세스하는 것을 선호한다고 생각합니다.
감사합니다.
당신이 사용 사례를 설명 조금 더 수, 상속 및 custom descriptors를 사용합니다? "정적 속성 또는 메소드"는 여기에서 특별한 의미가 있지만 참조 할 때 "정적 멤버"를 사용하는 것 같습니다 : "변경되지 않는 클래스의 인스턴스" – brianpck
@brianpck 예, "상수 인스턴스 수업의 ". 편집 됨. 감사. – sokokaleb