Python第11讲

函数

高阶函数

  • 概念 —— 接收函数作为参数,或者将函数作为返回值返回的函数
  • 作用 —— 使用一个函数作为参数时,实际是将制定的代码传递到目标函数
lst = [1, 2, 3, 4, 5]

def fn(func, l):
    lst1 = []
    for i in lst:
        if func(i):  #函数内部嵌套函数,嵌套的函数由使用者确定
            lst1.append(i)
    return lst1

def fn1(i):
    if i % 2 == 0:
        return True

def fn2(i):
	if i > 2:
		return True

f = fn(fn1,lst)
print(f) # [2,4]

f = fn(fn2,lst)
print(f) # [3,4,5]

闭包

  • 概念 —— 将函数作为返回值返回的函数
  • 作用 —— 创建一些只有当前函数能够访问的变量,可以将私有或重要的数据藏到闭包中
  • 条件:
    1. 函数嵌套
    2. 将内部函数作为返回值
    3. 内部函数必须使用到外部函数的变量
def fn(): # 函数内传入参数也可以当做闭包的变量,但是在内部函数中必须用nonlocal声明
    lst = []	
    def fn1(n):	#函数嵌套
        lst.append(n)	# 内部函数使用到外部函数变量
        return sum(lst) / len(lst)	# 内部函数使用到外部函数变量
    return fn1	#将函数内部作为返回值
f = fn()
print (f(10)) # 10.0

装饰器

简介
  • 概念 —— 定义一个函数,可以接受一个函数作为参数,对该函数进行一些包装,不改变函数的本身。
使用
  • 开发过程中,都是通过装饰器来对函数进行扩展
  • 在使用函数前使用@符号加装饰器函数名称,可以直接使用装饰器
def fn(func):
    def new_fn(*a, **b):
        print('start。。。')
        r = func(*a, **b)
        print('end...')
    return new_fn
@fn
def name():
    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': {...}}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值