Python基础:def函数定义、参数传递与返回值详解

沈亦白
沈亦白
发布时间:2026-10-12 | 2人浏览过
原创

本文系统讲解Python中def关键字定义函数的完整语法,涵盖基础结构、形参与实参的区别、return返回值机制,以及默认参数、位置参数和动态参数(*args、**kwargs)的高级用法,帮助开发者掌握代码复用与模块化编程技巧。

什么是函数?

在软件开发中,许多功能代码块会被反复调用。若每次使用都进行复制粘贴,不仅会导致代码体积膨胀、结构臃肿,还会显著增加阅读和维护的难度。为解决这一问题,提高代码复用率,函数机制应运而生。

如何定义函数?

Python中定义函数需以关键字def作为起始,随后紧跟函数名称及一对圆括号。

圆括号内部用于声明函数所需的参数列表。

函数体的内容通过冒号引导,并严格遵循缩进规范来界定范围。

函数的基本结构如下所示:

def 函数名(参数): 函数体

定义第一个函数

学习任何编程语言时,输出“Hello world”通常是入门第一步。因此,我们的第一个Python函数也从最基础的文字输出开始构建。

def hello():
    print('Hello world!')
    
hello()

输出:

Hello world!

执行结果显示,通过调用自定义的hello函数,成功执行了内部的print语句并输出结果。

什么是形参实参,什么是返回值?

此处定义一个名为add1的函数,用于计算两个数值的和,建议先运行代码观察效果。

def add1(num1, num2):
    result = num1 + num2

    return result

x1, x2 = 1, 2
y = add1(x1, x2)
print(y)

输出:

3

该函数准确计算并返回了1加2的结果。

与前述Hello world函数相比,add函数引入了num1、num2两个参数以及return语句。其运行逻辑如下:

调用add函数时,传入x1和x2两个变量,函数内部的num1和num2分别接收这两个实参的值。随后将num1与num2相加赋值给result,最后通过return语句将result的值返回给调用者y,打印y即可得到结果3。

在此过程中,定义函数时括号内的num1、num2被称为形参(形式参数);调用时传入的x1、x2被称为实参(实际参数);return result语句负责返回result的计算结果,该结果即为返回值。

综上所述,形参是函数定义阶段括号内声明的参数;实参是调用函数时实际传入的值;返回值则是return关键字后表达式的计算结果。

借助数学函数定义y = f(x)来理解编程中的函数更为直观:x代表传入的参数,f代表执行计算的函数体,而y则是函数计算后返回的结果值。

函数参数的一些额外用法

沿用上述add1函数的逻辑,但采用不同的参数赋值策略:

def add1(num1, num2):
    result = num1 + num2

    return result
    
y = add1(num1=1, num2=2)
print(y)

输出:

3

除了位置传参,还可以为函数的形参设置默认初始值。

def add2(num1=1, num2=1):
    result = num1 + num2

    return result

y = add2()
print(y)

输出:

2

在形参具备默认值的前提下,调用方式更加灵活。

def add2(num1=1, num2=2):
    result = num1 + num2

    return result

y = add2(3)
print(y)

输出:

5

此处传入数值3,按顺序替换了add2函数的第一个形参num1,使num1变为3,num2保持默认值2,最终result计算结果为5。

若希望不按照参数定义顺序进行赋值,该如何操作?

def add2(num1=1, num2=2):
    result = num1 + num2

    return result

y = add2(num2=3)
print(y)

输出:

4

结果显示,数值3并未按顺序赋值给第一个参数,而是通过关键字指定传给了num2,此时num1保持默认值1,result计算结果为4。

任意传递实参

当调用函数时传入的参数数量不固定,该如何处理?

def save(*temp):
    return temp


y = save('1', 2, 'abc', True)
print(y)

输出:

('1', 2, 'abc', True)

若在形参前添加一个星号(*),该参数将接收所有剩余的位置参数,并以元组(tuple)的形式保存。

def student(**temp):
    return temp


y = student(name='老王', age=20, high=180, is_student=True)
print(y)

输出:

{'name': '老王', 'age': 20, 'high': 180, 'is_student': True}

若在形参前添加两个星号(**),该参数将接收所有剩余的键值对参数,并以字典(dict)的形式保存。

附加

函数代码可以独立存放于其他文件中,供主程序调用。此处演示如何调用之前定义的add1函数。

from aboutadd import add1

y = add1(1, 2)
print(y)

输出:

3

通过文件关系图可以清晰看到模块间的调用结构。

总结

至此,关于Python中def函数定义及用法的教程介绍完毕。如需了解更多Python def函数相关内容,建议查阅本站历史文章或继续浏览后续教程,感谢支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表