嗨喽,大家好呀~这里是爱看美女的茜茜呐
目的:给func()方法,增加一个功能,在fun()执行期间,同时把fun()执行速率机算出来
import time
def func():
print('嘻嘻哈哈')
start_time = time.time()
time.sleep(0.1)
func()
end_time = time.time()
print('----> 执行效率%s'%(end_time - start_time))
python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可
如果,我们给fun1,fun2,fun3,实现相同的功能呢?
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def func():
print('嘻嘻哈哈')
def timmer(f):
start_time = time.time()
time.sleep(0.1)
f()
end_time = time.time()
print('----> 执行效率%s'%(end_time - start_time))
f = func
func = timmer
func(f)
但是,每次都需要将函数作为函数,传递给timmer(),而且这种方式已经破坏了原有的逻辑结构,之前的逻辑结构,是执行fun的同时,计算执行效率,但是现在是把fun传给第三方函数,进行计算。
怎么解决这种问题呢,装饰器。
装饰器就是:在不改动原函数代码前提下,增加额外的功能,装饰的返回值也是一个函数对象。
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def func():
print('嘻嘻哈哈')
def timmer(f):
start_time = time.time()
time.sleep(0.1)
f()
end_time = time.time()
print('----> 执行效率%s'%(end_time - start_time))
return timmer
f = timmer(func)
f()
@语法糖
: 在定义函数的时候使用,避免再一次赋值操作。
代码修改如下:
def timmer(f):
start_time = time.time()
time.sleep(0.1)
f()
end_time = time.time()
print('----> 执行效率%s'%(end_time - start_time))
return timmer
@timmer
def func():
print('嘻嘻哈哈')
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import time
def wrapper(f):
def inner(*args,**kwargs):
start_time = time.time()
time.sleep(0.1)
f(*args,**kwargs)
end_time = time.time()
print('----> 执行效率%s' % (end_time - start_time))
return inner
@wrapper
def fun(a):
print("%s嘻嘻哈哈" %(a))
@wrapper
def fun1(a,b):
print('%s嘻嘻哈哈,%s也跟着嘻嘻哈哈' %(a,b))
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def wrapper(f):
def inner(*args,**kwargs):
start_time = time.time()
time.sleep(0.1)
ret = f(*args,**kwargs)
end_time = time.time()
print('----> 执行效率%s' % (end_time - start_time))
return ret
return inner
@wrapper
def fun(a):
s = "%s嘻嘻哈哈" %(a)
return s
print(name)
总结:
就是 我们调用 fun() 方法,实现原来的功能,并且增加新的功能,前提不能修改源代码。
上面总结了 Python 调用 JS 的 4 种方式
实际爬虫项目中,一般会先使用 node 命令进行一次测试,确保没问题后,
再使用前 3 种方式的任意一种进行 Python 改写
希望本篇文章有对你带来帮助 ,有学习到一点知识~
最后,宣传一下呀~更多源码、资料、素材、解答、交流皆点击下方名片获取呀**