Python基础:def函数定义、参数传递与返回值详解
本文系统讲解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函数相关内容,建议查阅本站历史文章或继续浏览后续教程,感谢支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













