python - how to apply decorators to Python functio

2019-08-12 06:14发布

问题:

Prefer a micropython answer but will accept CPython

I'm implementing a Python function in C.

How do you apply a decorator to Python function written in C?

回答1:

Decorators can be invoked with a function as their argument. So if you would have written this (in Python):

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

You can instead write this:

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

myfunc = mydeco(myimpl)

You can then move myimpl to C.

If your decorator takes arguments:

myfunc = mydeco(a, b)(myimpl)