加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

5.2Python函数(二)

发布时间:2020-12-17 00:15:08 所属栏目:Python 来源:网络整理
导读:div class="toc" p class="toc-title"目录 div class="toc-list" 这一篇式相继上一篇5.1Python函数(一)的进阶文章。 一个重要的思想是:我们把”函数名“当成一个变量来处理。 偏函数:在不修改原函数的原函数前提下,修改函数的默认值,新建的函数叫偏函

<div class="toc">
<p class="toc-title">目录


<div class="toc-list">

这一篇式相继上一篇5.1Python函数(一)的进阶文章。

一个重要的思想是:我们把”函数名“当成一个变量来处理。

偏函数:在不修改原函数的原函数前提下,修改函数的默认值,新建的函数叫偏函数。

# 定义一个有默认值的函数
def test1(a,b,c,d=1):
    print(a+b+c+d)

现在有一个需求,想把默认值改为c=2,d=3

我们需要在重新构造一个全新的函数?

不需要,下面的定义类似类的继承,也就是偏函数的定义

def test2(a,c=2,d=3):
test1(a,d)

调用偏函数

test2(1,2)


<h3 id="显示效果">==3.显示效果==

01.png

函数名也是一个变量,也可以通过赋值,传递给其他变量。

当函数的形参接收的是一个函数名的时候,则称该函数是高阶函数

# 动态的计算两个数
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,mysub)


<h3 id="运行效果">==3.运行效果==

02.png

当函数的返回值是:一个函数名称时,我们称返回值函数

# 定义一个返回值函数
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)


<h3 id="运行效果-1">==3.运行效果==

03.png

没有名字的函数,我们称匿名函数,也称lambda函数。

语法:lambda var1,var2,……:表达式

注意:只能写一个表达式,而且只能用一次。

# 定义一个匿名函数
func = lambda x,y: x + y
result = func(1,2)
print("结果是:",result)

04.png

首先清楚两个概念:

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

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

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

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

注:内部函数需要修改外部变量,需要用nolocal 声明

# 定义一个闭包函数
def test(a):
    b = 2
    def test2():
        nonlocal b
        b = 5
        print("a:",a)
        print("b:",b)
    return test2

调用闭包函数

fun = test(1)
fun()


<h3 id="运行效果-3">==3.运行效果==

06.png

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读