동적 속성이 엉망이었고 object() 클래스에서 직접 객체를 만든 경우 __dict__ 속성을 사용할 수 없다는 것을 알았지 만 개체의 직접적인 자손 인 새 클래스를 만듭니다. __dict__ 특성에 액세스 할 수 있습니다. 차이점은 무엇입니까?Python의 차이점은 __dict__에서 object()와 class myClass (객체) 사이의 차이입니다.
예 :
# This gives an AttributeError o = object() o.__dict__
# This works: prints {}
class myClass(object):
pass
o = myClass()
o.__dict__
'__dict__ '을 직접 사용하는 것은 거의 항상 불필요하며 나쁜 생각입니다. 동적 속성 이름은 일반적으로 사전 키로 더 잘 수행되지만, 경우에 따라 정당화 될 수 있습니다.하지만 그 경우에는'setattr'을 사용할 수 있습니다. – delnan