반응형
다음과 같은 클래스에서 상수 집합을 정의하고 싶습니다.
class Foo(object):
(NONEXISTING,VAGUE,CONFIRMED) = (0,1,2)
def __init__(self):
self.status = VAGUE
그러나 나는
NameError: global name 'VAGUE' is not defined
global
또는 self.NONEXISTENT = 0
등에 의존하지 않고 이러한 상수를 클래스 내부에서 볼 수 있도록 정의하는 방법이 있습니까?
해결 방법
클래스 본문의 이름에 할당하면 클래스의 속성이 생성됩니다. 클래스를 직접 또는 간접적으로 참조하지 않고서는 참조 할 수 없습니다. 다른 답변처럼 Foo.VAGUE
를 사용하거나 self.VAGUE
를 사용할 수 있습니다. self
의 속성에 할당 할 필요가 없습니다.
일반적으로 self.VAGUE
를 사용하면 하위 클래스가 속성을 사용하는 모든 메서드를 다시 구현할 필요없이 속성을 재정의 할 수 있기 때문에 원하는 것입니다. 예,하지만 누가 압니다.
참조 페이지 https://stackoverflow.com/questions/3995546
반응형
'파이썬' 카테고리의 다른 글
파이썬 re 모듈의 정규식이 단어 경계 (\ b)를 지원합니까? (0) | 2020.10.29 |
---|---|
파이썬 python-opencv에서 비디오 차원 가져 오기 (0) | 2020.10.29 |
파이썬 Pandas 최대 가치 지수 (0) | 2020.10.29 |
파이썬 "virtualenv : command not found"오류가 발생하지만 설치 위치는 PYTHONPATH에 있습니다. (0) | 2020.10.29 |
파이썬 0에서 9 사이의 임의의 정수 생성 (0) | 2020.10.29 |
댓글