|
|
发表于 2017-3-28 11:53:47
|
显示全部楼层
嗯,@ timeslong和之后的func()函数是一起的相当于执行了func=timeslong(func)。一但编绎这一句代码将先被执行print("Hello! 我被先执行了一次!!"),返回call函数的地址并赋值给func;其次你再调用print(func())会发现程序会把func()函数的内存地址作为一个参数传给 timeslong()函数, timeslong()函数再把参数传入它的内置函数call()中去执行.总之你多看看例题- import time
- def timeslong(func):
- print("Hello! 我被先执行了一次!!")
- def call():
- start = time.clock()
- print("It's time starting ! ")
- func()
- print("我本来的名称是:%s" % func.__name__)#它才是真正的func()函数
- print("It's time ending ! ")
- end = time.clock()
- return "It's used : %s ." % (end - start)
- def call1():
- print("我是call1")
- return call
- @ timeslong
- def func():
- i=20000000
- while(i):
- i-=1
- #print(func())#编绎完成之后再调用这句试试
- #func.__name__ #编绎完成之后你再看它的真面目是谁
复制代码 |
|