def deco(fn): def z( * args, ** kwargs): return fn( * args, ** kwargs) return z
def deco(fn): def z( * args, ** kwargs): return fn( * args, ** kwargs) return z
def deco(fn): def z( * args, ** kwargs): return fn( * args, ** kwargs) return z
def deco(fn): def z( * args, ** kwargs): return fn( * args, ** kwargs) return z
- def x (c, d):
- "" "This is X" ""
- pass
- @deco
- def y (a, b = 20 ):
- "" "This is Y" ""
- pass
Help on function x: >>> help (x) x (c, d) This is X >>> help (y) Help on function z: z (* args, ** kwargs)
- def deco (fn):
- def z ( * args, ** kwargs):
- return fn ( * args, ** kwargs)
- z.func_doc = fn.func_doc
- z.func_name = fn.func_name
- return z
- @deco
- def y (a, b = 20 ):
- "" "This is Y" ""
- pass
>>> help (y) Help on function y: y (* args, ** kwargs) # a should be (a, b = 20) This is Y </ code>
- from decorator import decorator
- @decorator
- def deco (fn):
- def z ( * args, ** kwargs):
- return fn ( * args, ** kwargs)
- return z
- @deco
- def y (a, b = 20 ):
- pass
>>> help (y) Help on function y: y (a, b = 20)
- import functools, inspect
- realgas = inspect. getargspec
- lookaside = dict ()
- def fakegas (f):
- if f in lookaside:
- return lookaside [f]
- return realgas (f)
- inspect .getargspec = fakegas
- def deco (fn):
- @ functools.wraps (fn)
- def z ( * args, ** kwargs):
- return fn ( * args, ** kwargs)
- lookaside [z] = realgas (fn) # note that
- return z
- @deco
- def x (a, b = 23 ):
- "" "This is X" ""
- return a + b
help (x) Help on function x in module __main__: x (a, b = 23) Some doc for x.
Source: https://habr.com/ru/post/74838/
All Articles