首页 / Python3 入门教程 / 函数定义与调用

Python3 入门教程

函数定义与调用

本教程共 70 篇 · 第 21 篇 · 更新于 2026-07-22 · 约 3 分钟阅读

PythonPython3 入门教程函数defreturndocstring

21. 函数定义与调用

本节目标:学会定义和调用函数,理解参数传递的本质,掌握文档字符串的写法。

为什么要用函数

把重复的代码块取个名字,需要时直接调用,这叫函数。它能让代码:

  • 更少重复
  • 更易读
  • 更易维护
  • 更好测试

定义函数

def 关键字定义:

def greet(name):
    print(f"Hello, {name}!")

规则很简单:

  1. def 后面跟函数名
  2. 圆括号里写参数(可以没有)
  3. 行尾必须有冒号 :
  4. 函数体缩进 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 的函数,默认返回 Nonereturn 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「定义函数」等,改写后所得。