Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/python-function.html

Python 函数


函数就是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

Python中函数的定义


Python中函数的定义非常简单,使用关键字def定义。函数在使用前必须定义,函数的类型即返回值的类型。

Python函数定义的格式如下所示:

def 函数名(参数1, 参数2, ...):
    函数体

函数名可以是字母、数字或下划线组成的字符串,但是不能以数字开头。函数的参数放在一对圆括号中,参数的个数可以一个或多个,参数之间用逗号隔开,这种参数称为形式参数,括号后面以冒号结束,冒号下面就是函数的主体。

Python中函数的参数


在C、C++中,参数的传递有值传递和引用传递两种方式。而Python中任何东西都是对象,所以参数只支持引用传递的方式

Python通过名称绑定的机制,把实际参数的值和形式参数的名称绑定在一起。即把形式参数传递到函数所在的局部命名空间中,形式参数和实际参数指向内存中同一个存储空间。

函数的参数支持默认值。当某个参数没有传递实际的值时,函数将使用默认参数计算。

在开发中,常常需要传递可变长度的参数。在函数的参数前使用标识符“*”可以实现这个要求。“*”可以引用元组,把多个参数组合到一个元组中。

Python中还提供另一个标识符“**”。在形式参数前面添加“**”,可以引用一个字典,根据实际参数的赋值表达式生成字典。

def func(a, b=1, c=None):
    print(a, b, c)


func('tool')
func('tool', b=188)
func('tool', b=188, c='.com')
print('----------')


def func1(a, *args, **kwargs):
    print(a, args, kwargs)


func1('t', 'o', 'o', 'l')
func1('www', 'to', 'ol', url='.com')

输出结果为:

tool 1 None
tool 188 None
tool 188 .com
----------
t ('o', 'o', 'l') {}
www. ('to', 'ol') {'url': '.com'}

此外,必须要注意的是,“*”必须在“**”前面,这是语法规定。

Python函数的返回值


函数的返回使用return语句,return后面可以是变量或表达式。None是Python中的对象,不属于数字也不属于字符串。当函数中的return语句不带任何参数时,返回的结果也是None。

如果需要返回多个值,可以把这些值“打包”到元组中。在调用时,对返回的元组“解包”即可。

def func(a, b=1, c=10):
    return a + 1, b + 2, c + 3


x, y, z = func(1, 8, 8)
print(x, y, z)

输出结果为:

2 10 11