Python函数定义、调用与参数传递原理详解
本文深入解析Python函数的定义语法、调用机制及参数传递原理。详细讲解def语句的使用、形参与实参的区别,重点阐述常规参数、缺省参数及不定长参数的用法与注意事项,并说明return语句对返回值的影响,帮助开发者掌握函数核心概念。
Python函数定义、调用与参数传递原理详解
本文详细阐述了Python中函数的声明与调用定义及其底层原理,通过具体示例代码进行直观演示,旨在为读者的学习与工作提供具有实际价值的参考指南。
函数本质上是可重复调用的代码片段。例如前文提及的type()和len()等均为Python内置函数,它们由Python底层封装以实现特定功能。
函数的定义
一、函数的定义
在Python中,使用def语句来定义函数。定义时需依次指定函数名、括号、括号内的参数列表以及冒号。随后在缩进块中编写函数体,若需返回值则使用return语句;若未包含return语句,函数默认返回None。
def functionname( parameters ):
"函数说明"
function_suite
return [expression]
以下示例展示如何编写一个输出'hello world'的函数。
def cusom_print():
print("hello world")
函数的调用
二、函数的调用
当Python解释器逐行执行代码时,若遇到函数定义语句,会自动跳过该定义块而直接执行其后的代码。若需执行函数逻辑,只需在代码中直接调用该函数即可。
需注意,函数必须在调用前完成声明。Python内置函数(如print()、type()等)已在编译器内部预先声明并定义,用户可直接调用而无需关注其内部实现细节。具体示例代码如下:
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com
@File:python_function.py
@Time:2019/10/3 10:48
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""
def custom_print():
print("hello world")
print("hello world")
print("hello world")
custom_print()
程序运行后的输出结果如下:
hello world
hello world
hello world
代码逻辑分析:当执行流到达第15行时,编译器识别到这是一处函数声明,因此不会立即执行,而是直接跳转至函数定义末尾的第20行。在第20行,编译器检测到custom_print()函数的调用指令,随即进入该函数内部,依次执行第16、17、18行的代码,直至函数结束。这便是完整的函数运行流程。
函数传参
三、函数传参
函数支持从外部接收参数。例如print()函数可直接接收字符串并打印;也可以不传递任何参数,如前文所述的custom_print函数,具体使用方式视实际需求而定。
在函数声明阶段定义的参数称为形参;而在外部调用函数时传递的参数称为实参。函数的参数主要包含以下两种类型:
1. 常规参数 通常情况下,若函数声明时定义了若干个形参,外部调用时必须传递相应数量的实参。具体示例代码如下:
def cusom_print1(x):
print("cusom_print1 : x={}".format(x))
def cusom_print2(x,y):
print("cusom_print2 : x={}".format(x))
print("cusom_print2 : y={}".format(y))
def cusom_print3(x,y,z):
print("cusom_print3 : x={}".format(x))
print("cusom_print3 : y={}".format(y))
print("cusom_print3 : z={}".format(z))
cusom_print1(1)
cusom_print2(1,2)
cusom_print3(1,2,3)
程序运行后的输出结果如下:
cusom_print1 : x=1
cusom_print2 : x=1
cusom_print2 : y=2
cusom_print3 : x=1
cusom_print3 : y=2
cusom_print3 : z=3
2. 缺省参数
在函数参数列表中,除常规参数外还包含缺省参数。缺省参数具有默认值,若外部调用时未传递该参数,则形参直接采用默认值;若传递了参数,则形参值等于外部传入的值。包含缺省参数的函数也被称为缺省函数。具体示例代码如下:
def cusom_print4(x,y=2,z=3): # x=2,z=3 缺省参数
print("cusom_print4 : x={}".format(x))
print("cusom_print4 : y={}".format(y))
print("cusom_print4 : z={}".format(z))
print("***"*20)
cusom_print4(1)
cusom_print4(1,4)
cusom_print4(1,4,3)
程序运行后的输出结果如下:
cusom_print4 : x=1
cusom_print4 : y=2
cusom_print4 : z=3
************************************************************
cusom_print4 : x=1
cusom_print4 : y=4
cusom_print4 : z=3
************************************************************
cusom_print4 : x=1
cusom_print4 : y=4
cusom_print4 : z=3
************************************************************
注意事项:
1. 缺省参数均具备默认值。若外部调用时未传递该参数,则直接采用默认值;否则,形参值等于外部传递的参数值。
2. 缺省参数必须位于函数形参列表的末尾。
# 错误写法
def cusom_print4(x,y=2,z):
print("cusom_print4 : x={}".format(x))
3. 不定长参数
除上述两类参数外,函数参数中还包含不定长参数,即函数的形参长度或类型不固定。
函数返回值return
四、函数返回值return
函数的返回值可选,具体取决于使用需求。若函数未包含return语句,则默认返回None(空值)。需注意,None不同于False,它不表示0或空字符串,而是表示“没有值”。
重点总结
五、重点总结
1. 函数声明必须位于调用之前,否则将引发错误。
2. 需特别注意缺省参数的书写规范。
3. 若函数未使用return语句,默认返回None。
本文详细阐述了Python中函数的声明与调用定义及其底层原理,通过具体示例代码进行直观演示,旨在为读者的学习与工作提供具有实际价值的参考指南。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









