为什么用python 函数?
为什么用python 函数? 使用函数可以减少重复代码。
装饰器干嘛的? 不改变现有函数的调用方式,同时扩展新功能 满足开放封闭原则:对扩展是开放的,对修改是封闭的
装饰器原理: - 利用闭包函数
的方法,调用函数时返回内部函数对象
- 装饰器只是语法糖, 装饰器是可调用的对象,可以像常规的可调用对象那样调用,特殊的地方是装饰器的参数是一个函数
example1
def runtime(func):
import time
def inner(*args, **kwargs):
start_time = time.time()
func(*args, **kwargs)
end_time = time.time()
r_time = end_time - start_time
print(r_time)
return inner
def rundate(func):
import datetime
def inner(*args, **kwargs):
start_time = datetime.datetime.now()
func(*args, **kwargs)
end_time = datetime.datetime.now()
r_time = end_time - start_time
print(r_time.total_seconds())
return inner
@runtime
def echo():
time.sleep(1)
print('time')
echo()
example2
# 装饰器带参数
def args(args):
def out(func):
def inner(*args, **kwargs):
func(*args, **kwargs)
return inner
return out
@args("haha")
def home(type):
print("---首页----",type)
home("a?")
lambda
#lambda匿名函数
def f1 (x,y):
return x*y
f1(2,3)
f2=lambda x,y:x*y
f2(2,3)
f2=lambda x,y:x/y if x>y else x*y
f2(1,3)
# lambda不能做复杂仅支持三元运算
filter 过滤
掉序列中不符合匿名函数lambda给出的筛选条件的元素
num = [1,3,5,6,7,8]
list(filter(lambda x:x%2 == 0,num))
map map(function, sequence) :对sequence中的item依次执行function(item),将执行结果function(item)组成一个List返回。 (map(函数,参数))
b = map(lambda x:x+1,[5])
print("map后",list(b))
args = ["alex","aaa","hehe"]
result = list(map(lambda x:x+"_sb",args))