我对python中的OOP很新(版本3.5)。我创建了一个泛型类,我想创建一个继承它的新类。
我的父类(比如A
)在其__init__()
方法中定义了两个args。我怎样才能继承我的子类中的那些(比如说B
),这样当我实例化B
时,我可以将它传递给A
的args?我实际上是在尝试使用super()
函数,但我不太确定结果。
我尝试了以下内容,但它给了我TypeError: __init__() takes 1 positional argument but 3 were given
class A(): # parent class
def __init__(self, x, y):
self.x = x
self.y = y
class B(A): # child class
def __init__(self):
super().__init__(x, y)
然后我会做(例如)b = B(5, 5)
编辑1
由于我的问题被确定为this answer的副本,我想说明为什么它不同以及为什么这个答案没有帮助我解决我的问题:
我不是在询问如何从子类访问父类的参数,但是如果可以实例化一个继承了父类的类,则将参数传递给它,如果它是对它的调用父母的班级。
答案是“我不能”,除非我在子类__init__()
方法中再次定义相同的参数。最后,正如我所说的我是OOP的新手,指出的答案没有用,因为最初的问题对我来说太难理解了(而且它甚至不在python中)。
答案 0 :(得分:1)
class A(): # parent class
def __init__(self, x, y):
self.x = x
self.y = y
class B(A): # child class
def __init__(self, x, y):
A.__init__(self, x, y)
所以现在你可以使用b = B(5,5)