type
status
date
slug
summary
tags
category
icon
password
程序中反复执行的某些代码,我们可以将它们封装成函数。
函数具有函数名、参数和返回值。
Python的函数很灵活:
- 可以在模块中但是类之外的定义,作用域是当前模块,我们称之为函数;
- 也可以在别的函数中定义,我们称之为嵌套函数;
- 还可以在类中定义,我们称之为方法。
1 定义
如果没有数据返回可以省略
return语句由于定义函数时的参数不是实际数据,会在调用函数时传递给它们实际数据,所以我们定义函数时的参数为形式参数,简称形参;称调用函数时传递的实际数据为实际参数,简称实参。
示例代码如下:
2 调用
2.1 位置参数
在调用函数时传递的实参与定义函数时的形参顺序一致,这是调用函数的基本形式。
2.2 关键字参数
在调用函数时可以采用“关键字=实参”的形式,其中,关键字的名称就是定义函数时形参的名称。
使用关键字参数调用函数时,调用者能够清晰地看出所传递参数的含义,提高函数调用的可读性。
3 参数的默认值
C++中可以定义多个同名函数,但是参数列表不同,这样在调用时可以传递不同的实参,使用起来非常方便,Python中是否也有函数重载的概念?
函数重载会增加代码量,所以在Python中没有函数重载的概念,而是为函数的参数提供默认值实现。
4 可变参数
Python中的函数可以定义接收不确定数量的参数,这种参数被称为可变参数。
4.1 元组可变参数
*可变参数在函数中被组装成一个元组。4.2 字典可变参数
**可变参数在函数中被组装成一个字典5 函数变量作用域
变量可以在模块中创建,作用域(变量的有效范围)是整个模块,被称为全局变量。
变量也可以在函数中创建,在默认情况下作用域是整个函数,被称为局部变量。
函数中也可以创建全局变量,需将变量声明为
global6 函数类型
Python中的任意一个函数都有数据类型,这种数据类型是function,被称为函数类型。
函数类型的数据与其他类型的数据是一样的,任意类型的数据都可以作为函数返回值使用,还可以作为函数参数使用。因此,一个函数可以作为另一个函数返回值使用,也可以作为另一个函数参数用。
6.1 过滤函数
过滤函数(
filter())用于对容器中元素进行过滤处理,语法如下:参数
function是提供一个过滤条件的函数,返回布尔值。参数
iterable是容器类型的数据。调用
filter()函数时,iterable会被遍历,它的元素会被逐一传入function()函数中。function()函数若返回True,则元素被保留;否则元素被过滤。最后遍历完成,已保留的元素被放到一个新的容器数据中。6.3 映射函数
映射函数(
map())用于对容器中的元素进行映射(或变换),语法如下:参数
function是提供一个变换规则的函数,返回变换之后的元素。参数
iterable是容器类型的数据。调用
map()函数时,iterable会被遍历,它的元素会被逐一传入function()函数中。在function()函数中对元素进行变换。7 lambda函数
Python中能否定义匿名函数,即没有名称的函数?
在Python中使用
lambda关键字定义匿名函数。lambda关键字定义的函数也被称为lambda()函数,语法如下。“参数列表”与函数的参数列表是一样的,但不需要用小括号括起来.
lambda()体部分不能时一个代码块,不能包含多条语句,只有一条语句,语句会计算一个结果并返回给lambda()函数,与有名称的函数不同的是,不需要使用return语句返回。示例1:
示例2:
8 函数注解
在Python中,
->符号用于函数注解(function annotation),它表示函数的返回类型。函数注解是在函数定义中对参数和返回值进行类型提示的一种方式,可以提供更多的代码可读性和文档说明。下面是一个示例代码,演示了如何使用
->来注解函数的返回类型:在上面的示例代码中,
add_numbers函数定义了两个参数 a 和 b,它们都被注解为 int 类型。-> int 表示该函数返回一个整数类型的值。通过使用函数注解,我们可以清楚地指定函数的参数类型和返回类型。这对于代码的可读性和类型检查工具(如静态类型检查器)非常有用。然而,需要注意的是,函数注解只是一种提示,并不会在运行时进行类型检查或强制执行。它们主要用于文档和代码维护的目的。
- 作者:KaiGuo
- 链接:https://blog.kaiguov5.com/article/d45048c9-ca86-4fba-9a27-f22250b996de
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。