Python3 入门教程
函数定义与调用
本教程共 70 篇 · 第 21 篇 · 更新于 2026-07-22 · 约 3 分钟阅读
PythonPython3 入门教程函数defreturndocstring
21. 函数定义与调用
本节目标:学会定义和调用函数,理解参数传递的本质,掌握文档字符串的写法。
为什么要用函数
把重复的代码块取个名字,需要时直接调用,这叫函数。它能让代码:
- 更少重复
- 更易读
- 更易维护
- 更好测试
定义函数
用 def 关键字定义:
def greet(name):
print(f"Hello, {name}!")
规则很简单:
def后面跟函数名- 圆括号里写参数(可以没有)
- 行尾必须有冒号
: - 函数体缩进 4 个空格
调用函数
定义之后,用函数名加括号调用:
greet("Alice") # 输出:Hello, Alice!
greet("Bob") # 输出:Hello, Bob!
返回值
函数用 return 把结果传回调用处:
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 8
return 一旦执行,函数立刻结束:
def check_age(age):
if age < 0:
return "年龄不合法"
if age < 18:
return "未成年"
return "成年"
Note没有
return的函数,默认返回None。return None可以简写成return。
返回多个值
Python 函数可以「返回多个值」,本质是返回一个元组:
def get_min_max(numbers):
return min(numbers), max(numbers)
minimum, maximum = get_min_max([3, 1, 4, 1, 5])
print(minimum, maximum) # 1 5
# 本质上返回的是元组
result = get_min_max([3, 1, 4])
print(result) # (1, 4)
print(type(result)) # <class 'tuple'>
文档字符串(docstring)
函数第一行的字符串是文档字符串,用来说明函数的功能、参数和返回值:
def calculate_area(width, height):
"""计算矩形面积。
参数:
width: 矩形的宽度
height: 矩形的高度
返回:
矩形的面积
"""
return width * height
用 help() 查看:
>>> help(calculate_area)
Tip养成写 docstring 的习惯。三个月后的你会感谢现在的自己。
参数传递的本质
Python 里变量是指向对象的标签。传给函数的,是「标签的副本」:
def change(x):
x = 10
a = 5
change(a)
print(a) # 5,没变
因为整数不可变,函数里的 x = 10 是让 x 指向新对象,不影响外面的 a。
但如果传的是可变对象,函数内部修改会影响到外部:
def append_end(lst):
lst.append("END")
my_list = ["a", "b"]
append_end(my_list)
print(my_list) # ['a', 'b', 'END'],被改了
Warning如果不想函数修改传入的列表,传一份拷贝进去:
append_end(my_list.copy()),或者在函数内部自己拷贝。
空函数
还没想好怎么实现?用 pass 占位:
def todo():
pass
pass 什么都不做,只是让语法合法。框架设计、接口定义时常用。
来源:参考了 runoob「Python3 函数」、liaoxuefeng「定义函数」等,改写后所得。