【问题标题】:Dynamic function call in pythonpython中的动态函数调用
【发布时间】:2018-07-12 01:14:36
【问题描述】:

我可以调用很多可能的函数,但我并不总是需要调用每个函数。

有没有一种方法可以传递我想调用的函数列表,然后动态调用它们?

换句话说:

def GetDate():
    ..does stuff..
    return Date

def GetTime():
    ..does stuff..
    return Time

def GetLocation():
    ..does stuff..
    return Location


List_of_functions_to_call = ["GetDate","GetTime"]

def Call_functions(List = List_of_Functions_to_call):
    for i in List:
        ...????...
        ..# Function would then call GetDate() and GetTime()

【问题讨论】:

  • 怎么样...i()?请注意,像列表这样的可变默认参数是个坏主意:stackoverflow.com/q/1132941/3001761
  • 我同意为此目的列出一个列表不是一个好主意,我只是想解释我的问题。
  • 函数是 Python 中的第一类对象,你可以通过 [GetDate, GetTime],然后 i() 调用它们。

标签: python python-2.7 function dynamic


【解决方案1】:

你可以这样做:

def main_function(action):
    return { '1': func_a, '2': func_b, '3': func_c, '4': func_d}.get(action)()

def func_a():
    return "a"
def func_b():
    return "b"
def func_c():
    return "c"
def func_d():
    return "d"

if __name__=="__main__":
   print(main_function('1'))

此代码 sn -p 按预期打印 a。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-13
    • 2013-09-17
    • 1970-01-01
    • 2012-08-06
    • 2013-08-21
    • 2021-07-06
    • 1970-01-01
    相关资源
    最近更新 更多