1
파이썬에서 속성의 속성 값을 만들고 설정하고 싶습니다. 여기 파이썬에서 연결 가능한 동적 속성
은 예입니다book = Dynamic()
book.chapter1.section2 = 'abc'
않은 setattr가 호출 될 때 작성해야하므로 내 책 객체가 장 속성이 없습니다. 나는 일이 왔 :
book = Dynamic()
book.chapter1 = SubDynamic()
book.chapter1.section2 = 'section 2'
난 안하지만, 장이 존재하지 않는다고 말해 오류를받지 않고 하나 개의 라인으로 가입하는 방법을 알아낼 수 있습니다.
다음은 내가 가지고있는 것입니다.
class Dynamic(object):
def __setattr__(self, name, value):
sn = SubDynamic(value)
self.__dict__[name] = v
class SubDynamic(object):
def __init__(self, attr):
value = ""
self.attr = value
def __setattr__(self, name, value):
self.__dict__[name] = value
if __name__ == '__main__':
book = Dynamic()
book.chapter1.section2 = 'abc'
내가 생각을 할 수있는 것보다 간단한 - 난 그냥 더 설명 할 것입니다 (다른 reders/영업에 대한) 그 __getattrr__은 그냥 인스턴스에 속성이 없을 때 호출됩니다. 따라서 동적으로 작성된 속성 또는 다른 속성을 더 읽음으로써이 메소드에 의해 속성이 파기되지는 않습니다. (모든 속성 액세스를 대신 제어하려면'__getattribute__'에 대한 python 문서를 확인하십시오) – jsbueno