lst =[1,2,3,4,5]deffn(func, l):
lst1 =[]for i in lst:if func(i):#函数内部嵌套函数,嵌套的函数由使用者确定
lst1.append(i)return lst1
deffn1(i):if i %2==0:returnTruedeffn2(i):if i >2:returnTrue
f = fn(fn1,lst)print(f)# [2,4]
f = fn(fn2,lst)print(f)# [3,4,5]
deffn(func):defnew_fn(*a,**b):print('start。。。')
r = func(*a,**b)print('end...')return new_fn
@fn
defname():print('我是name')
name()#调用函数及装饰器
匿名函数 —— lambda
使用要求 —— 创建简单的函数。(是函数的另一种创建方式)
语法: 函数 = lambda 参数列表: 返回值
fn =lambda a, b : a + b
print(fn(3,4))# 7
命名空间
概念 —— 用来专门保存变量的字典,称为命名空间
使用方法 —— locals()函数,获取当前作用域的命名空间,返回是一个字典
num =100
scope =locals()print(scope){'__name__':'__main__','__doc__':None,'__package__':None,'__loader__':<_frozen_importlib_external.SourceFileLoader object at 0x0000020DB11808B0>,'__spec__':None,'__annotations__':{},'__builtins__':<module 'builtins'(built-in)>,'__file__':'I:/python/Project/lesson11/class_code.py','__cached__':None,'num':100,'scope':{...}}