一、Python函数的形式
def function_name (参数, ...) -> return value_type:
# 函数体
return value
# 看具体需求
# 如果没有return语句,函数执行完毕后也会返回结果
# 只是结果为None。return None可以简写为return
二、函数名
这里可以与C++中进行类比,C++的函数名表示函数的地址,可以通过指针来指向函数的地址,再以指针调用函数:
#include <iostream>
void func(int a, int b)
{
std::cout << a << " + " << b << " = " << a + b << std::endl;
}
int main()
{
void (*f) (int, int) = func;
f(1,2);
return 0;
}
Python中的函数也是一样的道理,函数名是指函数的本身,可以被变量名引用,变量名就可以充当新的函数名使用:
my_abs = abs;
print(my_abs(-10))
def add(a, b):
return a + b
my_add = add;
print(my_add(1, 2))
print(my_add('abc', 'ABC'))
所以函数名也是一个对象,我们可以使用函数名来充当函数的参数,从而实现类似于C语言在函数的参数中传递函数指针的操作,完成回调
三、 Python的返回值
【注】:每次返回都是返回的一个新的对象
在Python3中,提供了可以标注函数返回值的类型的功能,但Python是动态类型语言对返回值的类型标注不会像C++这种静态类型语言那样进行严格的类型检查和限制,所以我们可以认为返回值只是给程序员自己看着方便,在语法不会检查。
返回值标注的作用:
- 增强代码的可读性:标注返回值类型可以让其他开发者在阅读代码时更清楚地理解函数的预 期输出。
- 作为文档:有助于为使用该函数的其他开发者提供明确的信息,减少误解和错误使用。
- 辅助静态类型检查工具:虽然 Python 本身不强制检查,但结合一些第三方的静态类型检查 工具(如 mypy),可以在一定程度上进行类型检查,提前发现潜在 的类型错误。
【C++】
在C++中,函数的返回值类型是必须标注的,静态类型语言必须保证接收函数返回值的时候数据类型是匹配的
1. Python函数返回多个值
返回的是一个元组对象,在语法上,返回一个