При создании декоратора с использованием @contextlib.contextmanager () мы должны написать [code]enter_action(...) try: yield ... finally: exit_action(...) [/code] это 3 строки только для (довольно некестетической) Try/witch/nyance Construct. Почему мы не можем получить что -то подобное? p> [code]enter_action(...) with context_magic(...): # equivalent to try/yield/finally exit_action(...) [/code] Это будет технически>
Я ищу способ (способ) ввести подсказку декоратора, указывающую только те параметры, которые должны существовать. Декоратор не меняет сигнатуру функции, которую он обертывает.
from functools import wraps
Кто-нибудь знает, можно ли передавать аргументы декоратору при вызове функции в Python?
До сих пор я видел подобные вещи только в определении функции: р>
@decorator( This is a decorator , 66)
def func(a: int, b: int) -> None:
pass
У меня есть вспомогательный декоратор, который я применяю к методам, которые могут одновременно быть методами экземпляра (обычного) и класса.
class instance_or_classmethod(classmethod):
def __get__(self, instance, owner=None):
return...
У меня есть вспомогательный декоратор, который я применяю к методам, которые могут одновременно быть методами экземпляра (обычного) и класса.
class instance_or_classmethod(classmethod):
def __get__(self, instance, owner=None):
return...