You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
749 B
39 lines
749 B
6 years ago
|
from random import randint
|
||
|
#this is the decorator
|
||
|
def decor(func): #takes a function as an argument
|
||
|
def x(z): # z = arguments passed from function that was decorated
|
||
|
print('now with decoration') #extra shit from the decorator
|
||
|
func(z) #run that function
|
||
|
return x #return the decorator function
|
||
|
|
||
|
@decor #invoke the decorator
|
||
|
def z(number):
|
||
|
print(number)
|
||
|
|
||
|
z(3)
|
||
|
|
||
|
|
||
|
#this is the functional equivalent
|
||
|
|
||
|
def decor2(func):
|
||
|
def x(z):
|
||
|
print('also with decoration')
|
||
|
func(z)
|
||
|
return x
|
||
|
|
||
|
def q(number):
|
||
|
print(number)
|
||
|
|
||
|
zz=decor2(q)
|
||
|
zz(3)
|
||
|
|
||
|
|
||
|
##another example
|
||
|
|
||
|
@decor
|
||
|
def othershite(thing):
|
||
|
x=randint(1,100)
|
||
|
print(f'here is some other shite and a random number({x}) plus {thing}')
|
||
|
|
||
|
othershite('piztak')
|