Python核心编程-函数三

1.高阶函数

  • 接收函数作为参数,或者将函数作为返回值返回的函数就是高阶函数
lst = [1,2,3,4,5,6,7,8,9,10]
# 在函数内部定义一个函数 用来检测一个任意的偶数
def fn2(i):
    if i % 2 == 0:
        return True

def fn3(i):
    if i > 5:
        return True
    return False

def fn4(i):
    if i % 3 == 0:
        return True
    return False
# 定义一个函数
# 可以指定一个列表中的所有的偶数,保存到一个新的列表
def fn(func,l):
    # 参数 l 就是被指定的列表 func
    # 创建一个新的列表
    new_lst = []
    for n in l:
        # 判断n的奇偶
        if func(n):
            new_lst.append(n)
    return new_lst
print(fn(fn2,lst)) # 求偶数
print(fn(fn3,lst)) # 求3的倍数
  • filter()是高阶函数
    - 它需要将别的函数作为参数来传递
    - 可以将我们的可迭代对象进行一个过滤
    - 返回值 可迭代的对象
lst = [1,2,3,4,5,6,7,8,9,10]
def fn4(i):
    if i % 3 == 0:
        return True
 print(list(filter(fn4,lst))) 
  • 匿名函数 lambda 表达式
    • lambda函数表达式是专门用来创建一些简单的函数,它也是函数的另一种创建方式
    • 语法:lambda 参数列表 : 返回值
fn6 = lambda a,b : a + b #将匿名函数赋值给一个变量
print(fn6(5,6))

print((lambda a,b : a + b)(10,50))

2.闭包

  • 将函数作为返回值也是高阶函数我们也称为闭包
  • 闭包的好处
    • 通过闭包可以创建一些只有当前函数能访问的变量
    • 可以将一些私有数据藏到闭包中
  • 形成闭包的条件
    • 函数嵌套
    • 将内部函数作为返回值返回
    • 内部函数必须使用外部函数的变量
def fn():
    a = 10
    # 在函数内部在定义一个函数
    def fn2():
        print('我是fn2',a)
    # 将内部函数fn2作为返回值返回
    return fn2
r = fn()
r()
#print(fn())

3.装饰器的引入

  • 我们可以直接通过修改函数中的代码来完成需求,但是会产生以下一些问题
    • 如果修改的函数多,修改起来会比较麻烦
    • 不方便后期的维护
    • 这样做会违反开闭原则(ocp)
      • 程序的设计,要求开发对程序的扩展,要关闭对程序的修改

4.装饰器的使用

  • 通过装饰器,可以在不修改原来函数的情况下来对函数进行扩展
  • 在开发中,我们都是通过装饰器来扩展函数的功能的
 定义一个函数 就是对其他函数进行扩展的 扩展的功能一个 是打印函数开始执行 一个是打印函数执行结束
def start_end(old):
    # 内部创建了一个函数
    def new_function(*args,**kwargs):
        print('函数开始执行')
        r = old(*args,**kwargs)
        print('函数执行结束')
        # 返回函数的执行结果
        return r
    # 返回新的函数
    return new_function
  
@start_end
# @property
def speak():
    print('同学们辛苦了!!!!')

speak()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python核心编程(第版)》是一本经典的Python编程教材,在学习Python编程语言上具有重要的指导作用。该书由Wesley J. Chun编写,内容系统全面,适合有一定编程基础的读者。 《Python核心编程(第版)》以深入浅出的方式介绍了Python编程语言的基础知识和高级特性。书中首先介绍了Python的安装和基本语法,包括数据类型、变量、运算符等基础知识。接着讲解了Python的控制结构,如条件语句、循环语句和函数等。同时,该书还讲解了Python的面向对象编程和异常处理等高级特性,使读者能够更加深入地了解Python语言的特点和优势。 《Python核心编程(第版)》还探讨了Python在网络编程、数据库操作、并发编程以及图形用户界面开发等方面的应用。通过实例和项目,读者可以学习如何利用Python开发实用的应用程序。书中还提供了大量的练习题和编程挑战,读者可以通过练习来巩固所学的知识。 与其他Python教材相比,《Python核心编程(第版)》在内容方面更加全面,涵盖了Python编程的方方面面。书中提供了丰富的示例代码和详细的解释,有助于读者更好地理解和掌握Python编程的技巧和方法。此外,书中还包含了进阶章节和附录,对于有一定编程基础的读者来说非常有帮助。 总之,《Python核心编程(第版)》是一本对于学习Python编程语言非常有价值的教材。无论是初学者还是有一定经验的开发者,都可以从中获益良多。阅读这本书能够帮助读者掌握Python编程的基础知识和高级特性,提升编程技能,并应用于实际项目开发中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值