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

python - how to apply decorators to Python functions written in C?

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

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

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

装饰器可以用一个函数作为参数来调用。所以如果你会写这个(在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)