개인 변수에 액세스해야하는 데코레이터를 작성하고이 불일치를 발견했습니다. 아무도 이것을 설명 할 수 있습니까?파이썬 "개인"이름 맹 글링과 인스턴스 속성 대 클래스 속성
이는 인스턴스 속성이 작동하지 않습니다 (그리고 이것은 우리가 바로 그것을 어떻게해야하는 방법이다 : 클래스에 정의 된 속성에 대한 예상대로
(파이썬 2.5)
이름 지정 작업을 맹 글링?)
>>> class Tester(object):
... def __init__(self):
... self.__foo = "hi"
>>> t = Tester()
>>> t._Tester__foo
AttributeError: 'Tester' object has no attribute '_Tester__foo'
PS "클래스 속성"은 이것들에 맞는 단어인가? 그들은 정적 아니지만, 당신이 그 중 하나를 목록, 또는 다른 가변 타입을 만들 경우,
업데이트 사실
, 두 번째 예제도 잘 작동 ... 공유됩니다. 하드웨어 문제였습니다 (다시 시작 도움이 됨).
클래스 속성이 올바른 단어입니다. 그리고 그들은 항상 * 공유됩니다. 돌연변이는 중요하지 않습니다. 주어진 객체를 변형시킬 수 있는지 묻는 것을 제외하고는 거의 중요하지 않습니다. – delnan
이 질문을 할 수 있습니까? 아니면 누군가 그것을 유지하는 가치를 보나요? 나는 원래의 문제를 재현 할 수 없다. 그것은 예상대로 작동하는 것 같습니다. – Rafe
@MartijnPieters는 많은 파이썬 테스트에서이 문제를 테스트하는 데 모든 방법을 사용했기 때문에이 코드를 사용하지 마십시오. – jsbueno