day15 decorator

Decorator
Different functions to increase the versatility of functions
Closure: + external variables function objects need to use the internal function of the overall function returns =
Decorator can be passed to a function that returns a function object
Without parentheses called function objects
There parentheses is called the function call
def prc():
return sum
>>> def func1 (func): # func is a function, function, function
... return func([1,2,3,4]) # sum([1,2,3,4])
...
>>> func1(sum)
10
Closure:
def func():
x = 100
def func1():
print(x)
return func1 # func1 () function call if the return, will print x, if not the parentheses, the function returns the memory address
Decorative example # call, (hereinafter in this way, write is decorated at the top)
import time
def timer(func):
def func1():
time1 = time.time()
func()
time2 = time.time()
print ( 'were used% s'% str (time2-time1))
return func1
 
@timer
def a():
x = 1
while x<1000000:
x += 1
 
@timer
def b():
x = 1
while x<10000000:
x += 1
a()
b()
a ===>timer(a)
a()=====>timer(a)()
 
 
 
 
 
 
>>> for i in range(1,10):
... for m in range(1,i+1):
... # print(i,'*',m,'=',i*m)
... print('{}*{}={}\t'.format(i,m,i*m),end='')
... print()
...
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
 
>>> for i in range(len(l)):
... for k in range(i+1):
... if l[i]<l[k]:
... l[i],l[k] = l[k],l[i]
...
>>> l
[2, 3, 5, 6, 7]
 
for i in range(1,5):
... for k in range(1,5):
... for m in range(1,5):
... if i !=k and i != m and k != m:
... print(i,k,m)
 
 

Guess you like

Origin www.cnblogs.com/jueshilaozhongyi/p/12089099.html