Ich würde gerne einen neuen Dekorator anstelle von @wraps(f)
, die was auch immer mag Magie @wraps(f)
würde tun, als etwas anderes. Wie würde ich das tun?Erweiterung der Funktionalität der functools.Wraps Dekorateur
Insbesondere, ich habe mehrere Dekorateure, die von der Form sind:
def decorator(f):
@wraps(f)
def wrapper(*args, **kwargs):
# does some stuff in here
return f(*args, **kwargs)
if not hasattr(wrapper, '_first_line'):
wrapper._first_line = inspect.getsourcelines(f)[1]
return wrapper
Es scheint, wie ich in der Lage sollte ein Dekorateur wie @wraps_with_first_line(f)
zu schaffen, die alles tun, dass @wraps(f)
tut sowie if not hasattr(wrapper, '_first_line'): wrapper._first_line = inspect.getsourcelines(f)[1]
.
Ich habe am Ende eine Mischung aus deiner Antwort und Sven's verwendet, aber es fühlte sich mehr wie deine an. – Isaac