Python函数定义、调用与参数传递原理详解

拾光
拾光
发布时间:2026-10-13| 3人浏览过
原创

本文深入解析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中函数的声明与调用定义及其底层原理,通过具体示例代码进行直观演示,旨在为读者的学习与工作提供具有实际价值的参考指南。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。