我正在尝试在命令行中添加方法名作为参数。我使用的是python2.7.10中的argparse模块。在
def create_parser():
parser = argparse.ArgumentParser(description='add method name')
parser.add_argument('--method_name', help='pass method name to be used')
return parser
def foo():
return "I am here."
def bar():
return "I am not here."
def where_are_you(method_name):
return method_name()
def main():
return where_are_you(args.method_name)
if __name__ == '__main__':
main()
我试图通过命令行调用其中一个方法,但得到以下错误: “TypeError:'str'对象不可调用。”请指导我这里我是python新手。在
我添加了一个字典,它可以从名称映射到函数对象。这个字典还可以用来限制解析器接受的选择。在
测试:
^{pr2}$上一个副本
Calling a function of a module from a string with the function's name
使用
getattr
对模块命名空间执行常规搜索,以将字符串与函数匹配。这可以在这里使用,但对于初学者来说可能太高级了,甚至对高级程序员来说也可能太开放了。一般来说,最好将给用户的选择限制在已知的有效选项集内。在如果这个字典映射令人困惑,我建议使用更明显的映射
相关问题 更多 >
编程相关推荐