Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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/8/variables/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:为什么变量遵循MRO_Python_Variables_Inheritance - Fatal编程技术网

Python:为什么变量遵循MRO

Python:为什么变量遵循MRO,python,variables,inheritance,Python,Variables,Inheritance,python新手…为什么方法遵循MRO,而变量似乎不遵循 具体而言(关于格式设置的道歉…这是第一次看到): 无论我尝试什么,我总是得到C1中的自我价值 如何在C2…C3中获得自我价值的价值??? 或 为什么不能将所有self.value设置为相同的(C1)值 (也许是这样;-)至少一开始是这样。但是当你调用super,超类调用中的代码覆盖了前面的值。super给出了C1 RegardLess你是说self.value在C1中先例(没有名字范围或MRO之类的东西)啊…那么你是说既然名字相同,las

python新手…为什么方法遵循MRO,而变量似乎不遵循

具体而言(关于格式设置的道歉…这是第一次看到):

无论我尝试什么,我总是得到C1中的自我价值

如何在C2…C3中获得自我价值的价值??? 或 为什么不能将所有self.value设置为相同的(C1)值

(也许是这样;-)

至少一开始是这样。但是当你调用
super
,超类调用中的代码覆盖了前面的值。

super给出了C1 RegardLess你是说self.value在C1中先例(没有名字范围或MRO之类的东西)啊…那么你是说既然名字相同,last init设置了最终的值?这是否与名称范围冲突,因为每个层中都有一个局部变量在处理……但最后一层覆盖了所有?但它们不是局部变量。它们都在同一个实例上设置属性。但是给定版本的self.value在给定版本的def init中
class C1(object):
  def __init__(self):
    self.value = 1

class C2(C1):
  def __init__(self):
    self.value = 2
    C1.__init__(self)

class C3(C2):
  def __init__(self):
    self.value = 3
    C2.__init__(self)

cc=C3()

cc.value  # or a bunch of other attempts at