Python:为什么变量遵循MRO
python新手…为什么方法遵循MRO,而变量似乎不遵循 具体而言(关于格式设置的道歉…这是第一次看到): 无论我尝试什么,我总是得到C1中的自我价值 如何在C2…C3中获得自我价值的价值??? 或 为什么不能将所有self.value设置为相同的(C1)值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
(也许是这样;-)至少一开始是这样。但是当你调用
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