从子类实例访问父类实例属性?

问题描述 投票:7回答:3

如何在此代码示例中从“child”访问“myvar”:

class Parent():
    def __init__(self):
        self.myvar = 1

class Child(Parent):
    def __init__(self):
        Parent.__init__(self)

        # this won't work
        Parent.myvar

child = Child()
python class instance parent
3个回答
9
投票

Parent是一个类 - 蓝色打印而不是它的实例,在OOPS中访问它需要的实例的对象的属性,这里self / child是实例,而Parent / Child是类...

看到下面的答案,可能会澄清你的疑虑。

class Parent():
    def __init__(self):
        self.myvar = 1

class Child(Parent):
    def __init__(self):
        Parent.__init__(self)

        # here you can access myvar like below.
        print self.myvar

child = Child()
print child.myvar

7
投票

Parent没有名为myvar的属性。只有父实例具有该属性。在Child的方法中,您可以使用self.myvar访问该属性。


-1
投票

您需要首先使用命令“super”通过所谓的代理对象启动父类。

所以代码将是这样的:

class Parent():
  def __init__(self):
      self.myvar = 1

class Child(Parent):
  def __init__(self):
      super.__init__()


child = Child()
print child.myvar
© www.soinside.com 2019 - 2024. All rights reserved.