what does someclass.__init__ thing do
1 2 3
| class subclass(superclass):
def __init__(self, arg1, arg2):
superclass.__init__(self, blah1, blah2) |
使用superclass.__init__(self, blah1, blah2)的目的是什么?对于继承超类时是否使用最后一行,我有点困惑。
- 有特定的编程语言吗?
- 取决于超类。它可能什么也不做。
- 答案.yahoo.com/question/index?合格中介机构=20101214203620aaooelf
- @我说的语言是Python。
- 是的,这取决于超类的__init__()函数是否做了您想做的事情。
- 将self传递给超类的__init__是不必要的(错误的,即使是隐式传递)。
- @厄斯兰9你错了。
- @马金,你能详细解释一下吗?
- 在我看来,超类的__init__用于定义与超类中定义相同的参数。我说的对吗?另外,class subclass(superclass)的确切用途是什么。我的意思是子类使用这个从超类继承什么?它继承了函数、参数还是什么?
- 你应该阅读docs.python.org/2/tutorial/classes.html——这应该涵盖你的大部分问题。
- @厄斯兰9号…我正在看。
- @Ersran9:您必须显式地将self传递给一个基类构造函数,请参见:docs.python.org/2/reference/datamodel.html object.uu init__
- @Paulgriffiths感谢你花时间把它联系起来-很明显我错了。
1
| superclass.__init__(self,*args,**kwargs) |
基本上等于
1
| super(Myclass,self).__init__(*args,**kwargs) |
也就是说,它调用supers构造函数。但它跳过了继承堆栈的其余部分(我认为super()气泡或其他什么东西…大多数时候我使用第一种方法)
**这可能是过度简化