5.2Python函数(二)
程序员文章站
2022-07-23 23:41:03
目录 [TOC] 前言 这一篇式相继上一篇5.1Python函数(一)的进阶文章。 一个重要的思想是:我们把”函数名“当成一个变量来处理。 (一)偏函数 ==1.说明== 偏函数:在不修改原函数的原函数前提下,修改函数的默认值,新建的函数叫偏函数。 ==2.原代码== ==3.显示效果== (二)高 ......
目录
目录
前言
这一篇式相继上一篇5.1python函数(一)的进阶文章。
一个重要的思想是:我们把”函数名“当成一个变量来处理。
(一)偏函数
==1.说明==
偏函数:在不修改原函数的原函数前提下,修改函数的默认值,新建的函数叫偏函数。
==2.原代码==
# 定义一个有默认值的函数 def test1(a, b, c, d=1): print(a+b+c+d) # 现在有一个需求,想把默认值改为c=2,d=3 # 我们需要在重新构造一个全新的函数? # 不需要,下面的定义类似类的继承,也就是偏函数的定义 def test2(a, b, c=2, d=3): test1(a, b, c, d) # 调用偏函数 test2(1, 2)
==3.显示效果==
(二)高阶函数
==1.说明==
函数名也是一个变量,也可以通过赋值,传递给其他变量。
当函数的形参接收的是一个函数名的时候,则称该函数是高阶函数
==2.源代码==
# 动态的计算两个数 def caculate(num1, num2, caculatefun): result = caculatefun(num1, num2) print(result) # 求差函数 def mysum(a, b): result = a + b print("求和函数") return result # 求和和函数 def mysub(a, b): result = a - b print("求差函数") return result # 调用高级函数 caculate(4, 2, mysum) caculate(4, 2, mysub)
==3.运行效果==
(三)返回值函数
==1.说明==
当函数的返回值是:一个函数名称时,我们称返回值函数
==2.源代码==
# 定义一个返回值函数 def get_fun(symbol): # 子函数求和 def my_sum(a, b): return a+b # 子函数求差 def my_sub(a, b): return a-b # 根据判断返回不同的函数名 if symbol == "+": return my_sum elif symbol == "-": return my_sub # 调用返回函数 func = get_fun("+") result = func(1, 2) print(result)
==3.运行效果==
(四)匿名函数
==1.说明==
没有名字的函数,我们称匿名函数,也称lambda函数。
语法:lambda var1, var2,……:表达式
注意:只能写一个表达式,而且只能用一次。
==2.源代码==
# 定义一个匿名函数 func = lambda x, y: x + y result = func(1, 2) print("结果是:", result)
==3.运行效果==
(五)闭包函数
==1.说明==
首先清楚两个概念:
外部函数:在外出定义的函数。
内部函数:嵌套在一个函数里面的和函数。
闭包函数的定义:(满足三个条件)
- 必须有函数嵌套
- 内部函数引用到外部的变量
- 返回值是内部函数名
注:内部函数需要修改外部变量,需要用nolocal 声明
==2.源代码==
# 定义一个闭包函数 def test(a): b = 2 def test2(): nonlocal b b = 5 print("a:", a) print("b:", b) return test2 # 调用闭包函数 fun = test(1) fun()
==3.运行效果==
作者:mark
日期:2019/02/04 周一
下一篇: 快速查询Python文档方法分享