Python学习笔记——CSDN学习记录四:函数参数

文章详细介绍了Python函数参数的不同类型,包括可变与不可变类型,位置参数、默认参数、不定长参数(*)、关键字参数以及命名关键字参数(**)的使用方法。同时,讨论了函数式编程的概念,强调了高阶函数和匿名函数(lambda)在函数式编程中的重要角色。
摘要由CSDN通过智能技术生成

参数种类:
函数参数种类分为可变类型和不可变类型。
可变类型:在函数内部对传入参数的修改会影响到外部变量,如列表、字典等。
不可变类型:在函数内部对传入参数的修改不会影响到外部变量,如整型、字符串、元组等。

位置参数:
调用函数时,必须将函数调用中的每个实参都关联到函数的相应形参。
最简单的关联方式是基于实参的顺序,这种关联方式被称为位置实参。

默认参数:
编写函数时,可以给每个形参指定默认值。
· 在调用函数时,如果形参提供了实参,则使用指定的实参值;否则,将使用形参默认值。
·· 设置默认参数时,必选参数在前,默认参数在后。
··· 当有多个默认参数,调用时可以按顺序提供默认参数。
···· 默认参数必须指向不可变对象(然而是有办法解决这个问题的,比如用if语句)。

不定长参数(可变参数):
在函数参数前面加 “ * ” 将该参数定义为不定长参数,如:
在这里插入图片描述

关键字参数:
关键字实参是传递参数时使用“名称-值”对的方式,在实参中将名称和值关联起来。
· 关键字实参无需考虑函数调用中的实参顺序。
·· 关键字参数有扩展函数的功能。

命名关键字参数:
限制关键参数的名字。
· “ * ” 表示不定长参数, “ ** ” 表示不定长的关键字参数。

参数组合:
定义函数时可以用——必选参数、默认参数、可变参数、关键字参数和命名关键字参数。
· 定义的顺序——必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
例 :

def func(a, b, c=0, *args, **kw):
    print('a=', a, 'b=', b, 'c=', c, 'args=', args, 'kw=', kw)

func(1, 2)
# 输出结果:a= 1 b= 2 c= 0 args= () kw= {}
func(1, 2, c=3)
# 输出结果:a= 1 b= 2 c= 3 args= () kw= {}
func(1, 2, 3, 'a', 'b') 
# 输出结果:a= 1 b= 2 c= 3 args= ('a', 'b') kw= {}
func(1, 2, 3, 'a', 'b', x=4)  
# 输出结果:a= 1 b= 2 c= 3 args= ('a', 'b') kw= {'x': 4}
args = (1, 2, 3, 4)
kw = {'x': 5}
func(*args, **kw)
# 输出结果:a= 1 b= 2 c= 3 args= (4,) kw= {'x': 5}

函数式编程:
是一种编程范式,是面向数学的抽象,其将计算描述为一种表达式求值。
函数式编程中的“函数”不是指计算机中的函数,而是指数学中的函数,即自变量的映射。
· 函数式编程特点——允许把函数本身作为参数传入另一个函数,也允许返回一个函数。

高阶函数:
接受函数为参数,或者把函数作为结果返回的函数,如:


· 最为人熟知的高阶函数有map、filter、reduce、apply(过时)。

匿名函数:
即不在使用def语句标准形式定义的函数,如lambad,该表达式用法为:
在这里插入图片描述
例:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HaJucy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值