python - 调用作为不带括号的参数传递的函数

标签 python

我有一个相对较大的程序,我已将其拆分为多个模块 - 因此,不同模块中的功能之间有很多重叠,我目前正在努力删除这些重叠。

我遇到的问题之一是需要将函数和类作为参数传递给其他函数和类 - 在定义它们之前。

我知道我可以将函数名称作为字符串传递并使用 exec(),理论上我也可以使用带有标准化键的字典。但是我想知道如何通过将函数用作另一个函数参数中的对象来调用函数。

我知道多个函数和类将无括号函数作为参数并调用它们 - 所以我确信这是可能的。问题是如何?

基本示例是:

def func1(some_function):
    #call some_function here

并在一个单独的模块中:

def func2():
    print("Success!")

最终结果是:

>>>func1(func2)
'Success!'

我正在使用Python 3.4。我还假设适用于函数的方法也适用于类。

最佳答案

def func1(some_function):
    #call some_function here

简单地变成

def func1(some_function):
    some_function()

函数是 Python 中的第一类对象

关于python - 调用作为不带括号的参数传递的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26277200/

相关文章:

python - 如何根据第一列的内容拆分一个巨大的 csv 文件?

python - "AttributeError: ' MyStreamListener ' object has no attribute ' api '"tweepy 错误

python - pickle:它如何 pickle 一个函数?

python - 使用 'Requests' python 模块进行 POST 请求,接收响应就好像它是 GET

python - 在 Django/MySQL 中创建单例表的最佳方法

python - 是否所有多线程程序都在 GPU 上运行?

python echo服务器不工作

Python 模式

python - 我想使用 python opencv 模块以特定时间间隔保存视频帧

python - PyCharm 未列出 python3.6