파이썬 프로퍼티가 생성 된 후에 게터를 변경할 수 있습니까?파이썬 : 사실 이후에 프로퍼티 게터 변경
아이디어는 일단 한번봤을 때 다시 보지 않아도됩니다 (사전은 변경되지 않음). 내가 할 수있는 :
class A:
_lookup_str = 'hi'
_thing = None
@property
def thing():
if not value:
value = some_dictionary[_lookup_str]
return value
그러나 심지어이 나는 조건 테스트 해요 - 내가 전부 게터를 제거하고 값을 대체 할 수있는 것보다 더 많은 작업이다.
중복 http://stackoverflow.com/questions/815110/is-there-a-decorator- : 새로운 스타일의 클래스
, 당신은
__getattribute__
간단한 수정을 오버라이드 (override) 할 필요가 있습니다 to-simply-cache-function-return-values –
Im 당신이 성취하려고하는 것이 무엇인지 완전히 모르겠다 ... 사전 조회는 상대적으로 빠르며 거의 일정 시간이며, 속성을 사용하면 미래 요구 사항이 안전하고 효율적으로 구현됩니다. 속성을 사용하기위한 약간의 오버 헤드가 있지만 컨투어 ... 무거운/중복 계산 결과 캐싱 완전히 다른 이야기. –
@DmitryBeransky 중복이 아닙니다. 나는 self-replacement getter를 생성 할 데코레이터를 원한다. Tobias는 단지 게으른 로딩을하는 데코레이터를 원했습니다. getter는 자신이 계산/가져 오는 데이터로 대체하지 않습니다. –