Как применить декораторы к функциям Python, написанным на C?
Предпочитаю микропифонный ответ, но приму CPython
Я реализую функцию Python в C.
Как применить декоратор к функции Python, написанной на C?
1 ответ
Решение
Декораторы могут быть вызваны с функцией в качестве аргумента. Так что, если бы вы написали это (на 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)