gpt4 book ai didi

python - 从python中的另一个文件调用__main__

转载 作者:行者123 更新时间:2023-12-05 08:23:12 24 4
gpt4 key购买 nike

我有一个名为 client_simulator.py 的文件它包含一个名为 Client_simulator 的类模拟客户行为。

我有另一个名为 pool_manager.py 的文件它没有类,它有一个 __main__和很多功能,基本上,我想调用一个名为 generator 的方法的 Client_simulator class来自 pool_manager.py 的方法之一.

enter image description here

client_simulator.py的基本结构|如下

class Client_simulator(object):
def generator(self):

if __name__ == '__main__':
Client_simulator().generator()

文件基本结构pool manager.py如下

def start_client_simulator():

client_simulator.Client_simulator().generator()

if __name__ == "__main__":
start_client_simulator()

我收到以下错误

'module' object is not callable

P.S: 我想调用__main __而不是 `generator()',该怎么做?

我最近从 java 转向 python,这就是为什么有这些基本疑虑的原因。提前致谢

最佳答案

我认为您有点困惑,至少在术语方面,如果不是在代码方面的话。

当您使用 if __name__ == "__main__": 保护一段代码时,您并未定义 __main__ 函数。它只是一个普通的 if 语句,它读取全局变量 __name__(由 Python 解释器自动设置)并将其值与字符串进行比较。

所以没有 __main__ 可以从另一个模块调用。如果你希望该 block 的内容可以从其他地方调用,你应该把它放在一个函数中,你可以从 if __name__ == "__main__": block 和另一个模块调用它,如有必要。

所以在 client_simulator.py 中试试这个:

class Client_simulator(object):
def generator(self):

def main(): # you can name this whatever you want, it doesn't need to be main()
Client_simulator().generator()

if __name__ == '__main__':
main()

pool_manager.py 文件也可以调用client_simulator.main()

关于python - 从python中的另一个文件调用__main__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47524054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com