Ein Dekorateur, der leicht zu verstehen, aber schwer zu verstehen ist Ich weinte ein wenig, als ich es in der Klasse schrieb und dachte, dass es bereits perfekt war Es wäre schön, "args [0]" als Antwort auf "* args" zu übergeben
yo.py
import functools
import random
class Prot:
def __init__(self):
self.yo = ['yo'*i for i in range(10)]
def yoyo(f):
functools.wraps(f)
def wraps(*args):
print('yo gacha.')
result = f(args[0]) # args[0] = self, result = return value
print('')
return result
return wraps
@yoyo
def yo_gacha(self):
print(self.yo[random.randint(0, 9)])
if __name__ == '__main__':
p = Prot()
for _ in range(2): p.yo_gacha()
~ %python -m yo
yo gacha.
yoyoyoyo
yo gacha.
yoyoyoyoyoyoyoyoyo
~ %
Recommended Posts