繁体   English   中英

在Python上从子类更改超类的变量

[英]Alter superclass' variable from subclass on Python

举个例子

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

class B(A):

我希望能够向类B的超类的现有字典中添加第三个项目。不能完全覆盖它,只需添加第三个值即可。

如何才能做到这一点?

您需要将可变字典的副本创建到B

class B(A):
    dictionary = A.dictionary.copy()
    dictionary['key'] = 'value'

您可以使用可调用的dict()一步来做到这一点:

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'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM