Alter超类';Python子类中的变量
以此为例,Alter超类';Python子类中的变量,python,python-2.7,Python,Python 2.7,以此为例, class A(): dictionary={'item1':'value1','item2':'value2'} class B(A): 我希望能够将第三个项添加到已经存在的B类超类字典中。不要完全覆盖它,只需添加第三个值 如何做到这一点?您需要在B中创建可变字典的副本: class B(A): dictionary = A.dictionary.copy() dictionary['key'] = 'value' 您可以使用dict()callabl
class A():
dictionary={'item1':'value1','item2':'value2'}
class B(A):
我希望能够将第三个项添加到已经存在的B类超类字典中。不要完全覆盖它,只需添加第三个值
如何做到这一点?您需要在
B
中创建可变字典的副本:
class B(A):
dictionary = A.dictionary.copy()
dictionary['key'] = 'value'
您可以使用dict()
callable一步完成此操作:
class B(A):
dictionary = dict(A.dictionary, key='value')
无论哪种方式,B.dictionary
现在有3个键值对,而A
只有两个:
>>> class A():
... dictionary={'item1':'value1','item2':'value2'}
...
>>> class B(A):
... dictionary = dict(A.dictionary, key='value')
...
>>> A.dictionary
{'item2': 'value2', 'item1': 'value1'}
>>> B.dictionary
{'item2': 'value2', 'item1': 'value1', 'key': 'value'}
A.dictionary[“foo”]=“bar”
?您可能希望B
拥有自己的词典副本,因此与A
相同的词典,但添加了一些内容A
本身不应该有额外的键,对吗?@PadraicCunningham将为A
添加它,too@jonrsharpe,是的,但我不知道覆盖是什么意思