小编Ger*_*ert的帖子

覆盖__init__时属性不可用?

我正在尝试覆盖一个__init__方法,但是当我调用super方法时,该方法中创建的属性不可用.我可以看到它不是继承问题,因为class B仍然具有可用的属性.

我认为代码示例会更好地解释它:-)

Python 2.5.2 (r252:60911, Oct  5 2008, 19:24:49) 
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> class A(object):
...   def __init__(self, *args, **kwargs):
...     self.args = args
...     self.kwargs = kwargs
... 
>>> a = A('a', 'b', key='value')
>>> print a.args, a.kwargs
('a', 'b') {'key': 'value'}
>>> class B(A):
...   pass
... 
>>> b = B('b', 'c', key_b='value_b')
>>> print b.args, b.kwargs
('b', 'c') {'key_b': 'value_b'}
>>> class …
Run Code Online (Sandbox Code Playgroud)

python

2
推荐指数
1
解决办法
293
查看次数

标签 统计

python ×1