在python中如何使用导入的模块调用函数

时间:2016-10-12 17:24:10

标签: python function import module

我有这个调用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()。

1 个答案:

答案 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

但是,这只适用于这样的简单示例。如果你正在编写更复杂的东西,你可能想要使用对象并传递对象。这样,您就可以从单个对象调用所有多个方法/函数。