Как применить декораторы к функциям 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)
Другие вопросы по тегам