说我有两个文件,file1.py和file2.py。在file1.py中,我定义了两个类,一个继承自另一个:
file1.py:
class Class1:
def __init__(self):
pass
def func1(self):
return "Hello world!"
class Class2(Class1):
def __init__(self):
pass
def func2(self):
return self.func1()
因此,现在我可以从func1()
和拨打电话func2()
了Class2
。
file2.py:
import file1
class Class3(file1.Class2):
def __init__(self):
pass
问:我怎样才能改变func1()
来自Class1
于file2.py,从而使func2()
在Class2
收益一样func1()
?
所以不是这样的:
class Class3(file1.Class2):
...
def func1(self):
return "Another string"
会压倒一切func1
吗?
class Class(file1.Class2):
def func1(self):
print "Class3.func1"
c = Class3()
c.func2()
由于func2
未在中定义Class3
,Class2.func2
因此称为。但是,在该函数的主体中,self
仍然是的实例Class3
,因此self.func1()
调用Class3.func1
,而不是Class1.func1
。那不同于
d = Class2()
d.func2()
在self
中Class2.func2
的实例Class2
。Class2
没有定义func1
,所以Class1.func1
称为。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句