python实用小技巧之装饰器
程序员文章站
2022-04-09 08:46:08
...
python的装饰器:
假设我们要给很多函数统计函数运行时间,一般情况我们会给每个函数做如下处理:
import time
def fun()
t1 = time.time()
函数体...
t2 = time.time()
print(t2-t1)
如果加上装饰器以后就不需要每个函数都做上面的处理。
import time
def show_distance_time(func):
def wrapper(*args):
t1 = time.time()
res = func(*args)
t2 = time.time()
print(func.__name__, "time", t2 - t1 )
return res
return wrapper
# 判断该数是否为质数
def is_prime(num):
if num < 2 : return False
if num == 2 : return True
mid = int(num**(0.5))
for i in range(2, mid + 1):
if num % i == 0:
return False
return True
# 统计start到end之间质数的个数
@show_distance_time
def count_prime_nums(start, end):
if start > end : return 0
count = 0
for i in range(start, end+1):
if is_prime(i):
count += 1
return count
# 求1到end的和
@show_distance_time
def sum_until(end):
sum1 = 0
for i in range(end):
sum1 += i
return sum1
if __name__ == "__main__":
count_prime_nums(1, 200000)
sum_until(200000)
output:
count_prime_nums time 0.33507466316223145
sum_until time 0.006981849670410156
上一篇: php判断文件是否存在file_exists()函数使用详解
下一篇: PHP移动互联网开发之运算符