python语言入门教程(python语言自学教程)

(本号正在连续推出以Python官网文档为主线的系统学习Python的系列文章或视频,感兴趣的朋友们欢迎搜索关注。在这里学习Python事半功倍!本文及后续文章如无特别声明均以Windows平台作为演示平台,Python版本为:3.8.1)


函数的定义和调用方式

示例:

python语言入门教程(python语言自学教程)

【示例】函数的定义和使用

如上,函数定义形式为:

def 函数名(形参列表):
    函数体

函数体内同级别的语句具有相同的缩进。函数调用形式为:函数名(实参列表)。

【注】定义函数时参数列表中的参数称为形参,调用函数时使用的参数称为实参。

指定形参接受的实参类别

通过在形参前加上*或**来指定该形参接受tuple(list)或dict实参(这几种类型在后续文章中会详细讲解)。定义函数时,标示了*,**,以及未标示*或**的形参可以出现其中任一种,两种或全部。注意:标示了**的形参只能出现在形参列表的尾端,标示了*的形参只能出现在标示了**的形参(如果有的话)的左边且在未标示*或**的形参(如果有的话)的右边。示例如下:

python语言入门教程(python语言自学教程)

【示例】指定形参接受实参的类别

使用*标示的形参出现在函数形参列表尾端时可以实现函数接受可变长实参的功能,示例:

python语言入门教程(python语言自学教程)

【示例】接受变长实参

具有缺省值的形参

Python函数支持为参数指定缺省值。当函数的一些参数的值在多数情况下为特定值时,就可在定义函数时将这些特定值指定为对应参数的缺省值。这样在多数情况下就可以使用比定义要求少的参数来调用函数。当参数的缺省值不能满足实际情况时,在调用时为其指定新值即可。为参数提供缺省值增加了函数使用的灵活性。示例:

python语言入门教程(python语言自学教程)

【示例】参数的缺省值

在定义函数时,参数列表中一旦出现了具有缺省值的形参,其后的所有其它形参(如果有的话)必须都指定缺省值。也就是,具有缺省值的形参只能集中出现在参数列表的尾部。上面示例中演示了具有确省值参数函数的错误定义。在调用函数时,如果只使用了位置实参,则指定的实参依次从左向右赋给相应的形参,如果实参个数少于形参个数,则尾端没有被赋值的形参使用缺省值,需要使用缺省值但没有指定缺省值的会报错。

传参方式:位置实参方式和关键字实参方式

python语言入门教程(python语言自学教程)

【示例】传参方式

函数列表的特殊参数

在定义函数时可以用特殊的参数/和*来指定形参列表中那些形参是只能按位置实参方式传参,那些只能按关键字实参方式传参。/和*是可选的。如果使用了/,则其左边的形参只能按位置实参方式传参,其右边的形参不作限制。如果使用了*,则其右边的形参只能以关键字实参的方式传参,其左边的形参不作限制。示例如下:

python语言入门教程(python语言自学教程)

【示例】函数列表的特殊参数

对列表类型参数的拆包

前面示例中定义和调用函数时,使用过形如*a的参数,其中a为tuple或list。这一形式表示对list或tuple参数实施拆包。*(a1,a2,a3)操作结果为a1,a2,a3。注意:这一操作只能用于函数定义和调用时使用的list或tuple类型的参数,其它情形不支持。

匿名函数(lambda表达式)

Python中可以使用lambda表达式实现匿名函数。lambda表达式的定义形式为: lambda parameters : expression,其中lambda为关键字,expression只能为单个表达式。lambda表达式定义了一个匿名的函数对象,可以使用在任何需要函数对象的地方。示例如下:

python语言入门教程(python语言自学教程)

【示例】lambda表达式

示例中,sort排序函数使用lambda表达式作为函数对象来指定了排序使用的字段,即以比较每个tuple中后一个元素作为所有tuple排序的依据。sort函数是list类型的方法,将在后续文章中详细讲解。

文档字符串

在定义函数时,一个良好的设计习惯就是在开始处说明该函数的参数和返回值类型以及功能,这样可以方便之后的使用和维护。在Python中这可以通过文档字符串来实现:在函数体开始处使用引号引用的字符串作为说明文档。可使用函数对象的__doc__属性查看文档字符串。

注意:1. 引用文档字符串的左引号也要使用缩进且与第一行代码相同。2. 多行字符串应使用三引号以支持换行符。

示例如下:

python语言入门教程(python语言自学教程)

【示例】文档字符串

函数注释

函数注释信息是关于用户定义函数市使用的类型的完全可选的元数据信息。欲使用函数注释信息则定义函数时需为每个参数及返回值指定类型。以arg:type的形式注释参数信息,以->type的形式注释返回类型信息。函数注释信息可以使用函数对象的 __annotations__属性查看。示例如下:

python语言入门教程(python语言自学教程)

【示例】函数注释

【结束】

python语言入门教程(python语言自学教程)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论