在Python上改变子类的超类'变量

时间:2015-07-21 10:14:30

标签: python python-2.7

举个例子,

class A():
    dictionary={'item1':'value1','item2':'value2'}

class B(A):

我希望能够将第三项添加到B类中已经存在的超类字典中。不完全覆盖它,只需添加第三个值。

如何做到这一点?

1 个答案:

答案 0 :(得分:2)

您需要将可变字典的副本创建为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'}