Python 使用参数运行函数

Python 使用参数运行函数,python,Python,我需要运行一个python程序,并给它一个参数,这些参数是要执行的代码中的函数名。我可以通过使用sys.argv捕捉参数并执行适当的函数来实现这一点,但我希望自动执行,因为我的代码中有很多函数。例如,当我跑步的时候 my_program f1 f2 f3 我的_程序应该先执行名为“f1”的函数,然后执行名为“f2”的函数,等等。我知道这听起来可能不是“pythonic”或者“程序员的方式”,但我想知道是否有办法。自动执行这一操作是个坏主意。它会打开你的代码,让各种各样的安全漏洞等着发生。相反,

我需要运行一个python程序,并给它一个参数,这些参数是要执行的代码中的函数名。我可以通过使用sys.argv捕捉参数并执行适当的函数来实现这一点,但我希望自动执行,因为我的代码中有很多函数。例如,当我跑步的时候

my_program f1 f2 f3
我的_程序应该先执行名为“f1”的函数,然后执行名为“f2”的函数,等等。我知道这听起来可能不是“pythonic”或者“程序员的方式”,但我想知道是否有办法。

自动执行这一操作是个坏主意。它会打开你的代码,让各种各样的安全漏洞等着发生。相反,解析参数,专门查找您认可的有限函数名集

但是,如果必须“自动”执行此操作,则可以在
globals()
dict中查找函数名

import sys

def f1(): print "1"
def f2(): print "2"
def f3(): print "3"

for fname in sys.argv[1:]:
    globals()[fname]()
编辑:这是一个内置了少量安全性的版本。例如,它将执行
f1
f2
,但不执行
f3
sys.failsafe\u nuclear\u launch

import sys

def f1(): print "1"
f1.safe = True
def f2(): print "2"
f2.safe = True
def f3(): print "3"

for fname in sys.argv[1:]:
    fn = globals()[fname]
    if fn.__dict__.get('safe'):
        fn()
    else:
        print "No %s for you!" % fname

欢迎来到堆栈溢出!您似乎在要求某人为您编写一些代码。堆栈溢出是一个问答网站,而不是代码编写服务。请学习如何编写有效的问题。是的,有-阅读来自
sys.argv[1://code>的参数,并使用例如字典
{'f1':f1,…}
来选择和运行基于它的函数。我想它已经是@jornsharpe了-我想你的解决方案是OP反对的,当他说,“我想自动执行此操作,因为我的代码中有很多函数。”@Robᵩ 也许吧,但我们不得不猜测的事实表明目前还不清楚!谢谢你@Robᵩ. 这或多或少是我想要的,也谢谢你的安全提示。