我有这个调用main()函数的模块:
## This is mymodules ##
def restart():
r = input('Do you want to build another configuration file?\n1. Yes\n2. No\n')
if r == '1':
main()
elif r == '2':
os.system('pause')
main()在另一个加载此模块的脚本中。然而,当它调用它时,说main()没有定义。基本上这就是我在测试中所拥有的:
import mymodules as my
def main():
print('good')
my.restart()
当这个运行时,我希望my.restart()能够调用定义的main()。
答案 0 :(得分:2)
对于像这个简单的代码,你可以简单地将main
函数作为参数传递给restart函数。
E.g。
def restart(function):
r = input('Do you want to build another configuration file?\n1. Yes\n2. No\n')
if r == '1':
function()
elif r == '2':
os.system('pause')
和
import mymodules as my
def main():
print('good')
my.restart(main)
这是一种流行的设计模式,称为callback
但是,这只适用于这样的简单示例。如果你正在编写更复杂的东西,你可能想要使用对象并传递对象。这样,您就可以从单个对象调用所有多个方法/函数。