嗨我在传递变量/从其他类中执行函数时遇到了一些麻烦,
现在我有类似的东西,
class 1(3):
def hi():
print 'class 1'
class 2(3):
def hi2():
print 'class 2'
class 3:
def hi3():
print 'class 3'
让我们说,从第1课开始,我想从第2课开始执行一个函数,我该怎么做?
我已经谷歌搜索了一段时间,并没有取得多大成功(除了找到蛇的图像)
非常感谢任何有关此问题的帮助
答案 0 :(得分:2)
1
无法访问2
的方法; 2
位于不同的继承链上。
您可以使用1
的实例从方法中调用raw函数,但不要这样做。修改你的继承链。
答案 1 :(得分:2)
如果第3类需要来自第1类和第2类的函数,则可以进行双重继承:
class one:
def funct1(self):
print 'I am defined in class one'
self.data1 = "one"
class two:
def funct2(self):
print 'I am defined in class two'
self.data2 = "two"
class three(one, two):
def funct3(self):
print 'I am defined in class three'
self.data3 = "three"
然后,任何由第3类创建的对象都可以调用funct1,funct2和funct3。此对象也将拥有自己的self.data1,self.data2和self.data3版本。
ob_3 = three()
ob_3.data1
打印'one'
ob_3.funct1()
打印'我在第一阶段定义'
现在,另一方面,如果你想要一个子类的函数来调用超类的方法,可以这样做:
class one:
def funct1(self):
print 'class one'
class two(one):
def funct2(self):
one.funct1(self)
ob2 = two()
ob2.funct2()
打印'class one'
希望这有帮助!
答案 2 :(得分:-1)
第3类是基类,第2类是子类。您正在尝试从基类调用子类函数。这似乎不对。这不是一件容易的事。
你为什么要这样做?