迭代Python中的函数

0 python iteration function

我希望能够在Python 2.7中执行以下操作:

    for function in ['function1', 'function2', 'function3', 'function4']:
        some_dictionary [function] = function (an_argument)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这样做时,错误会增加.以下代码执行我希望上层代码执行的操作:

    some_dictionary ['function1'] = function1 (an_argument)
    some_dictionary ['function2'] = function2 (an_argument)
    some_dictionary ['function3'] = function3 (an_argument)
    some_dictionary ['function4'] = function4 (an_argument)
Run Code Online (Sandbox Code Playgroud)

是否有更紧凑的方式编写后一个代码,类似于前者?

提前致谢,

Logicum

kin*_*all 5

for function in ['function1', 'function2', 'function3', 'function4']:
    some_dictionary[function] = function(an_argument)
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为列表中的项目是字符串,您不能调用字符串.而是将实际功能放在列表中.

for function in [function1, function2, function3, function4]:
    some_dictionary[function.__name__] = function(an_argument)
Run Code Online (Sandbox Code Playgroud)

您还可以将函数本身用作键,这在某些情况下很有用(例如,您可以在其文档字符串中放置函数的描述并使用它来为用户打印好的内容,或者您​​可以允许用户重试函数,或者其他任何东西):保留函数引用以供以后使用,换句话说,比尝试从函数名中获取它更简单.

for function in [function1, function2, function3, function4]:
    some_dictionary[function] = function(an_argument)
Run Code Online (Sandbox Code Playgroud)