#!Python 3.8.12
#装饰器函数(简单了解,待深入)
#不改变原函数的基础上,装饰函数,方便后续更改或者协同工作
#装饰器调用从下往上调用
'''
##1.假设我想知道程序运行时间
def timeRun(funct):
import time
def wrapper():
start=time.time()
result=funct() #等同text()
print(f'运行时间为:{time.time() - start}')
return result
return wrapper
@timeRun #包装后续出现的函数
#原始数据
def text1():
print('hello world')
text1()
##2.我不仅想要时间,还想再这基础上,增加一下字符串
def timeRun(funct):
import time
def wrapper():
start = time.time()
result = funct() # 等同于text1()
print(f'运行时间为:{time.time() - start}')
return result # 返回被装饰函数的结果
return wrapper
def string1(fun):
import time
def wrapper():
result = fun() # 执行被装饰函数
print(f'{time.strftime("%Y-%m-%d",time.gmtime())}写下代码:\n\t{result}') # 打印执行结果
return result # 返回被装饰函数的结果
return wrapper
@timeRun
@string1
#原始数据
def text1():
return 'hello world' # 返回字符串
text1()
##字典、列表求和
#求产品销售总量
data = [
{"品名": "苹果", "销售量": 51},
{"品名": "香蕉", "销售量": 46},
{"品名": "草莓", "销售量": 58},
{"品名": "苹果", "销售量": 5},
{"品名": "香蕉", "销售量": 1},
{"品名": "雪梨", "销售量": 5}]#list
def sum_if(lst: list, product_name: str) -> int:
"""单条件求和"""
sumP=0
for i in lst:
if i["品名"]==product_name:
sumP+=i["销售量"] #i["销售量"]==i.get('销售量')
else:
continue
return sumP
try:
text = input() #str
print(f"产品:{text} 的销售量为 {sum_if(data,text)} 个") #产品:苹果 的销售量为 56 个
except:
print('输入有误')
'''
##删除重复元素set(),只接受一个参数
#错误写法
#a=set("北京","上海","广州","武汉","成都","上海","武汉")
#print(a) #TypeError: set expected at most 1 argument, got 7
#正确写法:
a=set(("北京","上海","广州","武汉","成都","上海","武汉") )
print(a) #{'广州', '上海', '武汉', '成都', '北京'}
##同理,list()一样,也只接收一个参数
#错误写法
#a=list("北京","上海","广州","武汉","成都","上海","武汉")
#print(a) #TypeError: list expected at most 1 argument, got 7
#正确写法:
a=list(("北京","上海","广州","武汉","成都","上海","武汉") )
print(a) #['北京', '上海', '广州', '武汉', '成都', '上海', '武汉']
如果你真的想当程序员那么就先写一万条代码。……《向上生长》
8号复习写下62条代码
目标:10000条
剩余:9660条
总结:
新学习的装饰器函数牛牛牛,还没有深入了解,后续多练习,多嵌套使用。