标签:env log class 结果 工作 odi 原理 函数 默认
1 # /usr/bin/env python 2 # -*- coding:utf-8 -*- 3 ‘‘‘ 装饰器 ‘‘‘ 4 ‘‘‘ 5 装饰器的工作原理 6 1. python的执行顺序是从上到下顺序执行. 7 2. 当执行到outer函数的时候, 将其内容放入内存, 执行到f1的时候.在f1上发现@outer装饰器. 8 3. 执行outer函数, 并将其下的函数名f1作为参数传递给outer 9 4. 将outer的返回值赋值给f1. 即f1=outer的返回值. 也就是f1重新指向outer的返回值 10 5. outer的返回值inner是函数, 也就是outer返回了一个函数. f1指向outer返回的inner函数. 11 6. 在后面调用f1(), 即调用inner()执行函数. 执行inner函数的内容. 12 7. 在inner函数中调用执行了func函数. func=原来的f1函数 , 调用func(),即执行原来的f1函数.返回结果r 13 8. inner的返回值是r, 新的f1函数的返回值也是r. 因此可以获得返回值, 并打印输出 14 8. 由于f1函数没有返回值, 默认返回none. 因此后来的f1函数的返回值是None. 15 ‘‘‘ 16 17 18 def outer(func): 19 def inner(): 20 print("hello") 21 print( "hello" ) 22 print( "hello" ) 23 r = func() 24 print("end") 25 print( "end" ) 26 print( "end" ) 27 return r 28 return inner 29 30 @outer 31 def f1(): 32 print("FF1") 33 34 35 r = f1() 36 print(r)
标签:env log class 结果 工作 odi 原理 函数 默认
原文地址:http://www.cnblogs.com/ITPower/p/7149171.html