Python 如何在不重写继承的类'__初始化__
我开始掌握OOP的窍门了。有人能用python上下文向我解释一下这个概念吗?我有两门课:Python 如何在不重写继承的类'__初始化__,python,oop,Python,Oop,我开始掌握OOP的窍门了。有人能用python上下文向我解释一下这个概念吗?我有两门课: class A(object): def __init__(self): self.foo = 'hello' class B(A): def __init__(self): self.bar = 'world' 所以我机械地理解,当我在B类中创建一个新的_uuu_u__; init _; def时,它会覆盖a类的。但我想知道为什么 我想用类B自己的ini
class A(object):
def __init__(self):
self.foo = 'hello'
class B(A):
def __init__(self):
self.bar = 'world'
所以我机械地理解,当我在B类中创建一个新的_uuu_u__; init _; def时,它会覆盖a类的。但我想知道为什么
我想用类B自己的init创建一个实例,但我也希望它有a的init。到目前为止,我所知道的得到我想要的东西的唯一解决方案,就是从A的_u_; init __;上复制B的代码
因此,我:
class A(object):
def __init__(self):
self.foo = 'hello'
class B(A):
def __init__(self):
self.foo = 'hello'
self.bar = 'world'
但对于对象继承,我认为应该有更好的方法来实现这一点。大多数人如何为子类创建init,同时仍然从基类继承东西?你真的必须复制粘贴所有你想要的东西到子类中吗?使用
super
并在子类init中调用你的父类init,注意,即使没有super
你也可以在A.\uuuuuuu init(self)
中执行B
的init。。。您不应该复制和粘贴代码。记住,方法只是函数。你可以在任何地方打电话给他们