0
목표는 python3에서 객체가 속성 액세스와 관련하여 정상적으로 작동하는 것입니다. 단, 속성이 일반 조회를 통해 사용할 수없는 경우는 예외입니다. 다른 방법으로 값을 가져 오거나 계산해야합니다.객체에 기본값을 갖는 멋진 (r) 방법이 있습니까?
나는 하나 가__getattr__
방법을 정의하여 문제를 해결할 수 있다는 것을 알고
def __getattr__(self, key):
if key == 'foo':
return calculate_default_foo()
elif key == 'bar':
return getattr(dfltobj, 'bar')
elif key == 'frob':
return 42
raise AttributeError
하지만 내가 python3에서이 작업을 수행 할 수있는 더 우아한 방법이 궁금 python2 그렇게 느낀다. property
을 정의하는 것만으로는 그 속성에 대한 액세스를 완전히 오버라이드 (override) 할 수 없으므로 그다지 잘 작동하지 않습니다. 그렇지 않으면 좋은 접근 방식이 될 것입니다.
도움을 희망 난 당신이 질문 a를 오해 생각이 비트. 의도는'foo.attr2'가 디폴트 값을 산출해야한다는 것입니다 (즉석에서 계산 될 필요가 있습니다). – skyking
나쁘다! 나는 지금 그것을 얻었을거야 .-. – mikelsr