다음은 이상하게 보입니다. 기본적으로 somedata 속성은 the_base_class
에서 상속 된 모든 클래스간에 공유 된 것처럼 보입니다.속성 참조가 파이썬 상속과 함께 왜 이런 식으로 작동합니까?
class the_base_class:
somedata = {}
somedata['was_false_in_base'] = False
class subclassthing(the_base_class):
def __init__(self):
print self.somedata
first = subclassthing()
{'was_false_in_base': False}
first.somedata['was_false_in_base'] = True
second = subclassthing()
{'was_false_in_base': True}
>>> del first
>>> del second
>>> third = subclassthing()
{'was_false_in_base': True}
분명히 __init__
기능이 주위에 얻을 수있는 올바른 방법을 self.somedata
입니다 정의 (각각의 클래스가 somedata
DICT 자신의 가지고) -하지만 때 그런 행동이 바람직하다?
그러면 인스턴스 var를 어떻게 선언합니까? – OscarRyz
답안에 예제를 추가했습니다. –
간단한 데이터와 복잡한 데이터 사이에 차이점이 있습니까? TimB가 말한대로? – OscarRyz