我从多个父类继承到一个类中。我要做的是使对象数据发生冲突。你知道吗
我的意思是,如果两个类持有一个名称相同、数据不同的变量,如果该变量出现在图片中,Python将加载哪些数据?你知道吗
我做了什么
>>> class pac:
... var=10
... var2=20
...
>>> class cac:
... var3=30
... var2=10
...
>>> pob=pac()
>>> cob=cac()
>>> pob.var
10
>>> pob.var2
20
>>> cob.var2
10
>>> cob.var3
30
>>> class newclass(pac,cac):
... def sum(self):
... sum=self.var+self.var2
... sum2=self.var2+self.var3
... print(sum)
... print(sum2)
...
30
50
>>> nob.var
10
>>> nob.var2
20
>>> nob.var3
30
>>>
似乎var2
数据将考虑来自父类:pac
而不是cac
类。你知道吗
如果相同的变量名存在于不同的数据中,那么需要做些什么来让Python考虑来自cac
而不是pac
的数据?请不要建议我改变继承顺序。你知道吗
谢谢你。你知道吗
你可以设置self.var2=cac.var2在newclass的init方法中:
还可以使用以下代码返回可能值的列表/元组:
mro
方法返回一个类列表,第一个类是调用者类,后面是父类,最后是object
内置类。 此代码将按继承顺序返回值列表。你知道吗在不改变继承顺序的情况下,您的子类将始终从第一个类中获得它可以在第一个类中找到的属性。如果您想找出第二个类中对应的值是什么,就必须显式地请求第二个类的值。你知道吗
对你来说
注意,我显式地要求
cac
的var2。你知道吗相关问题 更多 >
编程相关推荐