Python Inheritence - 父对象作为子对象的参数

时间:2017-08-14 07:48:34

标签: python oop inheritance

我对继承模型有一些问题。我想从给定的父对象创建一个新的子对象,我想访问这些属性。 这是我的结构的简化模型。

class foo:
def __init__(self,id,name):
    self.id = id
    self.name = name

class bar(foo):
    pass

new = foo(id='1',name='Rishabh')

x = bar(new)

print(x.name)

我希望新对象的所有属性都在x对象中继承。 感谢

1 个答案:

答案 0 :(得分:0)

首先,正如PEP8 Style Guide所说,“类名通常应使用CapWords惯例。”因此,您应该将类​​重命名为Foo和{{1} }。

您可以使用object.__dict__并覆盖子类中的Bar方法(__init__)来完成您的任务

Bar

但这不是传统的做事方式。如果你想拥有一个实例,那是另一个实例的副本,你应该使用class Foo: def __init__(self, id, name): self.id = id self.name = name class Bar(Foo): def __init__(self, *args, **kwargs): # Here we override the constructor method # and pass all the arguments to the parent __init__() super().__init__(*args, **kwargs) new = Foo(id='1',name='Rishabh') x = Bar(**new.__dict__) # new.__dict__() returns a dictionary # with the Foo's object instance properties: # {'id': '1', 'name': 'Rishabh'} # Then you pass this dictionary as # **new.__dict__ # in order to resolve this dictionary into keyword arguments # for the Bar __init__ method print(x.name) # Rishabh 模块而不要做这个过度杀伤。