2024-04-25 14:21:36 发布
网友
如标题所示。例如:
class A: def __init__(self,name): self.name=name class B(A): def __init__(self,surname): self.surname=surname obj=B('somename','somesurname')
如果允许的话,我应该以什么顺序在对象实例化中传递参数
如果必须执行旧构造函数,则新构造函数应调用父构造函数。您可以使用^{}调用父构造函数:
class A: def __init__(self, name): self.name = name class B(A): def __init__(self, name, surname): super().__init__(name) self.surname = surname obj = B('somename', 'somesurname')
在Python2中,必须将当前类和self指定为super():super(B, self)的参数,在Python3中,可以不使用参数调用它,如上图所示
super()
super(B, self)
您应该使用^{}内置函数:
class A: def __init__(self, name): self.name=name class B(A): def __init__(self, name, surname): super().__init__(name) self.surname=surname obj=B('somename','somesurname')
您需要从派生类显式调用超类的构造函数:
class A: def __init__(self,name): self.name=name class B(A): def __init__(self, name, surname): super().__init__(name) self.surname=surname obj=B('somename','somesurname')
如果必须执行旧构造函数,则新构造函数应调用父构造函数。您可以使用^{} 调用父构造函数:
在Python2中,必须将当前类和self指定为
super()
:super(B, self)
的参数,在Python3中,可以不使用参数调用它,如上图所示您应该使用^{} 内置函数:
您需要从派生类显式调用超类的构造函数:
相关问题 更多 >
编程相关推荐