以
@装饰函数
def 原函数
格式,将原函数嵌入某装饰函数中,为原函数添加功能
python
#时间装饰器,无参数
import time
def display_time(func):
def wrapper():
start_time = time.time()
func() # 直接调用原函数(无参数),这里的func()是指装饰器需要修饰的函数,在这里是prime_nums()
end_time = time.time()
print(f"执行时间: {end_time - start_time} 秒")
return wrapper
python
#打印原函数输出装饰器,原函数输入为元组或字典
def logger(func):
def wrapper(*args,**kwards):
result=func(*args,**kwards)
print(f"执行函数,输入为:元组{args},字典{kwards}")
print(f"函数{func.__name__}执行完毕,返回值{result}")
return result
return wrapper
实例:
python
def is_prime(num):
"""
判断一个数是否为素数
"""
if num < 2:
return False
elif num == 2:
return True
else:
for i in range(2, num):
if num % i == 0:
return False
return True
@display_time
def prime_nums(): # 这2行是一个整体
"""
找出2到10000之间的所有素数并打印
"""
for i in range(2, 10000):
if is_prime(i):
print(i)
prime_nums()