Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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_Inheritance_Attributes - Fatal编程技术网

Python属性和继承

Python属性和继承,python,inheritance,attributes,Python,Inheritance,Attributes,假设我有以下代码: class Class1(object): def __init__(self): self.my_attr = 1 self.my_other_attr = 2 class Class2(Class1): def __init__(self): super(Class1,self).__init__() 为什么Class2不继承Class1的属性?您使用错误,请将其更改为 super(Class2, s

假设我有以下代码:

class Class1(object):

    def __init__(self):
        self.my_attr = 1
        self.my_other_attr = 2

class Class2(Class1):

    def __init__(self):
        super(Class1,self).__init__()
为什么Class2不继承Class1的属性?

您使用错误,请将其更改为

super(Class2, self).__init__()
基本上,您告诉super查看给定类的上方,因此如果您给出Class1,则永远不会调用uuu init uuuu方法。

您使用了错误的方法,请将其更改为

super(Class2, self).__init__()
基本上,你告诉super在给定的类上面查看,所以如果你给Class1,那么永远不会调用uu init uu方法。

因为你给super的类是错误的。应该是:

class Class2(Class1):

    def __init__(self):
        super(Class2,self).__init__()
因为你给super上错了课。应该是:

class Class2(Class1):

    def __init__(self):
        super(Class2,self).__init__()

你可能还想看看这篇文章:因为我读到我只做Class1__self@Wayne当前位置那篇文章有误导性,有些人不赞成,但它是一本非常有趣和有用的书。多重继承确实是个问题,super更像是解决方案的一部分。选择super就像说安全带坏了,因为在事故中你仍然可能受伤。如果你使用super,你通常会做得更好。nikow,有什么好的读物可以解释为什么super更好吗?@Wayne:这是一本极好的读物,并且明确提到了有害的文章。在MI情况下,使用直接呼叫很快就变得难以置信地难以正确执行,而super仍然更易于管理。然而,如果可能的话,最好完全避免MI。你可能还想看看这篇文章:因为我读到我只会做Class1__self@Wayne当前位置那篇文章有误导性,有些人不赞成,但它是一本非常有趣和有用的书。多重继承确实是个问题,super更像是解决方案的一部分。选择super就像说安全带坏了,因为在事故中你仍然可能受伤。如果你使用super,你通常会做得更好。nikow,有什么好的读物可以解释为什么super更好吗?@Wayne:这是一本极好的读物,并且明确提到了有害的文章。在MI情况下,使用直接呼叫很快就变得难以置信地难以正确执行,而super仍然更易于管理。然而,如果可能的话,最好完全避免MI。