如何将许多模块导入main并执行

时间:2014-01-27 05:03:31

标签: python

再次成为python的新手。我有这项任务,包括通过输入俱乐部名称或询问阿森纳得分等关键字来搜索某个俱乐部的详细信息。我已经为以下几个团队制作了几个模块模块:

我最接近主要是:

def main():
    import team que1

if __name__ =='__main__':main()

我还有其他团队的其他模块,如NBA,Hockey,Rugby等。每次我单独运行模块时,它都有效,但是我需要一种方法导入到一个主程序中以允许用户输入任何关键字例如'芝加哥公牛球员'和模块运行或'阿森纳得分',模块从主要运行。这些模块包含相当长的细节,这就是为什么我将长代码分成这些模块的原因。我也将它们放入包中。请帮忙

1 个答案:

答案 0 :(得分:0)

以下是让您了解的小片段:

  1. 在python中,您可以通过将模块名称作为字符串传递来导入模块。 __import__

  2. 我的代码段中的两个脚本:

  3. 2.1主脚本名称是menu.py。

    2.2模块名称是基于输入字符串加载的库:

    您可以按照自己喜欢的方式扩展主脚本和模块。这只是为了理解。

    <强> main.py

    #!/usr/bin/python
    
    def load_module(name):
        return __import__(name)
    
    def what_score(module_name, sc):
        return getattr(module_name, 'score')(sc)
    
    if __name__ == '__main__':
        print "Input team name: ",
        team_name = raw_input().strip()
        module_name = load_module(team_name)
        print what_score(module_name, 5)
    

    <强> arsenal.py

    def score(n):
        return 'Score from [%s] is %d' % (__name__, n)
    

    输出:

    :tmp:> python menu.py
    Input team name:  arsenal
    Score from [arsenal] is 5
    :tmp:>