我想调用一个使用全局变量的类的方法,但似乎有我的逻辑有问题。通过类的全局变量?
在下面的代码中,A
调用B
,它调用C
,它调用B
的方法。
x = None
class A():
def __init__(self):
global x
x = B()
class B():
def __init__(self):
C()
def bla(self):
print('bla')
class C():
def __init__(self):
global x
x.bla()
A()
我得到的错误:
我缺少什么?
谢谢你的时间。我明白现在发生了什么。你能提出一种从B类中调用bla方法的方法吗?我只尝试使用全局变量,因为我相信它会起作用。从技术上讲,我所需要的是将这种B方法称为从A到B到C然后回到B方法。 –
@VictorJosé:你什么时候需要/想打电话给'bla'?调用它很简单:只需从'B .__ init__'中删除对'C()'的调用,然后执行'x = B()',然后执行'x.bla()'。在你的例子中'C'的用途不明确,因为'C'除了调用'x.bla'外什么都不做。你为什么不直接从'B .__ init__'调用'self.bla()'?你应该编辑你的问题来解释C正在做什么以及它和B之间的关系。例如,你可能想让C接受一个参数,然后调用'C(self)',这样'C'可以在正在初始化的'B'实例上调用'bla'。 – BrenBarn