class A():
class B():
def Foo(self):
print "Hello"
class C():
def Bar(self):
print "Goodbye"
def name(self):
print "FooBar"
我想要做的是,在Bar函数中调用Foo函数。我该怎么做?
答案 0 :(得分:2)
在Python中,内部类没有与它们关联的外部类的隐式实例。如果没有这样的实例,您就无法从A
或B
调用C
的非静态方法。
如果你有这样的实例,那么只需使用点符号:
class C():
def Bar(self):
self.a.name()
...
(其中self.a
是A
的实例。)
或者,如果A.name()
可以变为静态,则以下内容也适用:
class A(object):
class C():
def Bar(self):
print "Goodbye"
A.name()
@staticmethod
def name():
print "FooBar"
A.C().Bar()
答案 1 :(得分:0)
您需要一个类A
的实例来调用方法。