2014-01-27 33 views
0

再次是python的新手。我有这个任务,涉及通过输入一个俱乐部的名称或询问一个关键字如阿森纳比分等来搜索某个俱乐部的细节。我已经为几个球队制作了几个模块模块,如下所示:如何将许多模块导入到main并执行

最接近我来主要是:

def main(): 
    import team que1 

if __name__ =='__main__':main() 

我也有其他球队,如NBA,曲棍球,橄榄球等,每次我单独运行的模块,它的工作原理其他模块,但我需要一种方法来导入到主允许用户输入任何关键词,如“芝加哥公牛队球员”和模块运行或“阿森纳比分”,并从主要模块运行。这些模块包含相当长的细节,这就是为什么我将长代码分离到这些模块中的原因。我也把它们放进packages.Please帮助

+0

那么,你已经在队名和模块名之间的映射? –

+0

对不起@yopy我不明白这是什么。对于这个 – wakamdr

+1

非常新颖,您可以先缩进您的代码片段。 –

回答

0

这里是小片段来让你明白:

  1. 在Python中你可以通过模块名作为字符串导入模块。 __import__

  2. 具有两个脚本在我的代码片段:

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:> 
+0

嗨,感谢您的宝贵意见。大家肯定赞赏 – wakamdr

+0

当然,我们可以通过维护一个字典来过滤来自用户的错误输入来扩展团队。 –

+0

那会像{阿森纳,阿斯顿维拉,Cardif'....}? – wakamdr