首页 > 解决方案 > python - 如何将装饰器应用于用 C 编写的 Python 函数?

问题描述

更喜欢 micropython 的答案,但会接受 CPython

我正在用 C 实现一个 Python 函数。

如何将装饰器应用于用 C 编写的 Python 函数?

标签: pythonccpythonmicropython

解决方案


可以使用函数作为参数调用装饰器。所以如果你会写这个(在 Python 中):

@mydeco
def myfunc(x, y):
    return x * y

您可以改为这样写:

def myimpl(x, y):
    return x * y

myfunc = mydeco(myimpl)

然后,您可以移动myimpl到 C。

如果你的装饰器接受参数:

myfunc = mydeco(a, b)(myimpl)

推荐阅读