python基础语法之函数(三)

本文详细介绍了Python中的高阶函数概念,包括其使用和重要性。接着探讨了闭包的原理和应用场景,帮助读者理解函数内部变量的作用域。最后,阐述了装饰器的用法,展示了如何利用装饰器增强函数功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.高阶函数

		第一个特点:接受一个或多个函数作为参数
		第二个特点,将函数做为返回值返回
		接收函数作为参数
		lst = [1,2,3,4,5,6,7,8,9,10]
		#定义一个函数,可以将制定的列表中所有偶数,保存到一个新的列表中并返回
		#当我们使用一个函数作为参数,实际上是指将制定的代码传递进了目标函数
		#定义一个函数,判断是否为偶数
		def fn1(i):
			if i % 2 ==0
				return True
			return False
		#定义一个函数,判断是否为奇数
		def fn2(i):
			if i % != 0:
				return True
			return False
		#定义一个数是否被3整除
		def fn3(i):
			if i % 3 == 0:
				return True
			return False
		#定义一个函数用了检查是否大于5
		def fn4(i):
			if i > 5:
				return True
			retrun False
		def fn(func,lst):
			#参数lst,要进行筛选列表
			#创建一个新的列表
			new_lst = []
				for i in lst:
					#判断n的奇偶数
					if func() :
					new_lst.append(i)
			return new_lst
		print(fn(fn1,lst))   # [2, 4, 6, 8, 10]
		print(fn(fn2,lst))	#[1, 3, 5, 7, 9]
		print(fn(fn3,lst))	#[3, 6, 9]
		print(fn(fn4,lst))	[6, 7, 8, 9, 10]

2.闭包

		将函数作为返回值返回,我们也称之为闭包
		def fn()
			#在函数内部定义一个函数
			def fn2():
				print('我是fn2')
			#将内部函数作为返回值返回
			return fn2
		r = fn()
		r()     我是fn2
		形成闭包的条件
		1.函数嵌套
		2.将内部函数作为返回值返回
		3.内部函数必须要使用到外部函数的变量

3.装饰器

		我们可以直接通过修改函数中的代码来完成需求,但是会产生以下一些问题,
		1.如果修改的函数多,修改起来会比较麻烦
		2.不便于后期维护
		3.这样会违反开闭原则(ocp)
		程序设计,要求开放对程序的扩展,要关闭对程序的修改
		同通过装饰器,可以在不修改原来函数的情况下对函数进行扩展,
		在开发过程中,我们都是通过修改装饰器来扩展函数的功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值