5.2Python函数

Posted 梦并不遥远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.2Python函数相关的知识,希望对你有一定的参考价值。

目录

前言

这一篇式相继上一篇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.说明==

首先清楚两个概念:

外部函数:在外出定义的函数。

内部函数:嵌套在一个函数里面的和函数。

闭包函数的定义:(满足三个条件)

  1. 必须有函数嵌套
  2. 内部函数引用到外部的变量
  3. 返回值是内部函数名

注:内部函数需要修改外部变量,需要用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 周一

以上是关于5.2Python函数的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

python使用上下文对代码片段进行计时,非装饰器

python 元组有用的函数,方法和片段。

Python代码阅读(第26篇):将列表映射成字典

5.2 多元线性回归完成广告投放销售额预测——python实战

VSCode自定义代码片段——声明函数