Python 动态函数名称

标签 python factory

我正在寻找一种更好的方法来调用基于 Python 中的变量的函数,而不是使用如下的 if/else 语句。每个状态码都有对应的功能

if status == 'CONNECT':
    return connect(*args, **kwargs)
elif status == 'RAWFEED':
    return rawfeed(*args, **kwargs)
elif status == 'RAWCONFIG':
    return rawconfig(*args, **kwargs)
elif status == 'TESTFEED':
    return testfeed(*args, **kwargs)
...

我假设这将需要某种工厂函数,但不确定语法

最佳答案

您可能会找到 getattr有用,我想

import module
getattr(module, status.lower())(*args, **kwargs)

关于Python 动态函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/680941/

相关文章:

带有 SavedState 的 AndroidViewModel

javascript - JSDoc 和工厂

C++在循环中实例化模板

python - SQLite 返回无法转换为可用字符串的 Unicode 缓冲区

java - 在Java中使用泛型子类型对象创建泛型工厂

c# - 在另一个任务中启动任务会重复我的 WebRequest

python - 在 Django 中创建了一个新模型。但它没有出现在数据库中

python - 多个查询与手动排序一个大型查询 (AppEngine NDB)

python - 由于数据库连接,无法在 Django 1.10.1 中运行服务器

python - 使用Python SDK导出数据