Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不重写继承的类'__初始化___Python_Oop - Fatal编程技术网

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

我开始掌握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自己的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。。。您不应该复制和粘贴代码。记住,方法只是函数。你可以在任何地方打电话给他们