python自定义函数详解_Python-自定义函数(超详细进阶)

bba1cd11728b471044f6105ff3ef01f8fd03236b.jpeg?token=9cc2c31b92c41d63ad031b80c587e6c6&s=04BE78325999FFEB091252E403007026

基本概念

1.形参与实参

>形参(定义函数时的为形参)

>实参(调用时传递的是实参)

2.高阶函数

>把函数对象作为参数的函数称为高阶函数

3.局部函数

>python支持在函数内定义函数,即局部函数

4.函数执行机理

>函数的执行按栈数据结构完成,每调用一次函数就产生一个栈,函数只能

使用栈内的数据(即该函数的局部变量)。

5.调用函数

>函数对象(参数列表)

6.注意

>函数名即函数对象

>函数名命名同变量,若两个字母则第二个首字母大写

>函数在定义时才会执行

>函数的参数可以为任何类型,只要在函数内对该参数的操作符合用法即可

定义

1.关键字def定义

def 函数名 (参数列表逗号隔开):

(缩进)函数的文档说明(字符串),可通过函数对象的__doc__属性访问

(缩进)代码

(缩进)代码

……

2.lambda匿名函数定义

>语法:lambda 参数1,参数2……(可省) :语句(返回值)(不用return)

>返回函数对象,需一个变量(g)接收此对象,调用时为g(参数列表)即可

>当语句为条件时,满足条件返回True,不满足返回False

参数传递

1.参数传递方式

>位置传参

使用位置传递参数,从左到右一一对应,适用任何情况

>关键字传参

使用形参=xx传递指定参数,只能在传参列表最后面使用,传参列表的前

半部分参数仍使用位置传参的方式传递参数

>*可以作为形参表的内容,表示*后的下一个参数必须使用关键字传值

2.参数传递的缺参和多参处理

>缺参处理(设置缺省值)

在形参列表中直接给某个参数赋值即可设置缺省值,且有缺省值的形参

必须放在形参列表的最右边,调用函数时此参数可以不给值

>多参处理(设置冗余接收器)

·冗余接收元组

无映射实参在形参列表中最后加一项*变量名以元组形式

接收后面的冗余实参(只能写在后面且在冗余接收字典前)

·冗余接收字典

映射类型实参(如关键字传值的实参)在形参列表中多加一项**变量名

以字典来接收后面的冗余实参(只能写在后面且在冗余接收元组后)

3.参数传递实例

>将序列作为参数传递

·可直接传序列

·可用*将序列中的值一一取出来传给函数(即是把序列拆分为单元素在

分别传给函数)

·也可用序列索引传值

>字典作为参数传递

·可直接传字典

·可用**将字典中的键值对一一取出来传给函数(键值必须和此函数的形

参相同,在字典里的参数可无序,参数一般是字符串,键必须是字符串).

·也可用字典索引传值。

>集合作为参数传入

·可直接传入集合

·可用*将集合中的值一一取出来传给函数(即是把集合拆分为单元素在

分别传给函数)

>其它对象作为参数传入

·直接传入对象名即可

返回值

1.语法 return 返回值

>函数默认返回None,且return执行后函数调用会立即结束

>可以返回多个对象,使用逗号隔开即可

* 实际上python会将多个对象打包为元组在返回,也可自行打包返回,

接收返回值时使用序列解包即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值