精通Python函数:语法、类型与实战示例
Python函数
本文讲解函数是什么、语法、组成部分、类型,并教你在Python中创建函数。
视频:Python函数简介
Python中什么是函数?
Python中,函数是执行特定任务的一组相关语句。
函数帮助将程序拆解为更小、模块化的块。程序越大,函数使其更有条理、可管理。
此外,避免重复,使代码可复用。
函数语法
def function_name(parameters):
"""docstring"""
statement(s)
上述函数定义包含以下组成部分:
- 关键字
def标记函数头开始。 - 函数名唯一标识函数。命名遵循Python标识符规则。
- 参数(实参)用于向函数传值。可选。
- 冒号(:)标记函数头结束。
- 可选文档字符串(docstring)描述函数功能。
- 一个或多个有效Python语句组成函数体。语句缩进一致(通常4空格)。
- 可选
return语句从函数返回值。
函数示例
def greet(name):
"""This function greets to the person passed in as a parameter"""
print("Hello, " + name + ". Good morning!")
如何在Python中调用函数?
定义函数后,可从另一函数、程序甚至Python提示符调用。调用函数只需输入函数名加适当参数。
>>> greet('Paul')
Hello, Paul. Good morning!
在包含函数定义的Python程序中运行上述代码查看输出。
def greet(name):
"""This function greets to the person passed in as a parameter"""
print("Hello, " + name + ". Good morning!")
greet('Paul')
注意:Python中函数定义必须在函数调用前出现。否则报错。例如:
# 函数调用
greet('Paul')
# 函数定义
def greet(name):
"""This function greets to the person passed in as a parameter"""
print("Hello, " + name + ". Good morning!")
# Error: name 'greet' is not defined
文档字符串
函数头后的第一个字符串称为docstring,即文档字符串简写。简要说明函数功能。
虽可选,但文档是良好编程实践。除非你能记起上周晚餐吃什么,否则始终为代码写文档。
上例中,函数头下紧跟docstring。通常用三引号使docstring可跨多行。该字符串可作为函数的 __doc__ 属性访问。
例如:
在Python shell运行以下代码查看输出。
>>> print(greet.__doc__)
This function greets to the person passed in as a parameter
深入了解Python文档字符串,访问Python Docstrings。
return语句
return 语句用于退出函数并回到调用处。
return语法
return [expression_list]
语句可含表达式,求值后返回该值。若语句无表达式或函数内无 return,函数返回 None 对象。
例如:
>>> print(greet("May"))
Hello, May. Good morning!
None
此处 None 为返回值,因 greet() 直接打印名字且未用 return。
return示例
def absolute_value(num):
"""This function returns the absolute value of the entered number"""
if num >= 0:
return num
else:
return -num
print(absolute_value(2))
print(absolute_value(-4))
输出
2 4
Python中函数如何工作?

变量作用域与生命周期
变量作用域是程序中识别该变量的部分。函数内定义的参数和变量从外部不可见,故为局部作用域。
变量生命周期是变量在内存中存在的期间。函数内变量生命周期持续到函数执行结束。
返回函数时它们被销毁。因此函数不记忆前次调用的变量值。
示例说明函数内变量作用域:
def my_func():
x = 10
print("Value inside function:", x)
x = 20
my_func()
print("Value outside function:", x)
输出
Value inside function: 10 Value outside function: 20
此处 x 初始为20。虽函数 my_func() 将 x 改为10,但未影响函数外值。
因为函数内 x 不同(局部于函数)于外部。虽同名,实为不同作用域的两个变量。
另一方面,函数外变量从内部可见,拥有全局作用域。
可从内部读取这些值但不能修改(写入)。要修改函数外变量,必须用 global 关键字声明为全局变量。
函数类型
基本可将函数分两类:
- 内置函数 - Python内置的函数。
- 用户定义函数 - 用户自定义的函数。
Python
- Stratasys FDM打印优化必知:Insight软件10大核心功能
- 精通Python运算符:全面指南
- 精通Python函数参数:位置、关键字与默认参数
- Python Lambda匿名函数实战指南
- 精通 Python 字典:创建、操作与进阶技巧
- Python 生成器:高效迭代与进阶用例
- Python 闭包详解:嵌套函数如何捕获变量
- 精通 Python 装饰器:专家技巧增强函数
- Python strip() 方法完全指南:去除首尾空白与自定义字符实战
- 精通 Python Lambda 函数:实用示例与最佳实践
- Python round() 函数详解与实战示例
- 精通 Python map() 函数:语法、示例与最佳实践