Python函数嵌套的两种方式是什么?交叉嵌套和回环嵌套详解

 更新时间:2026年09月11日 14:16:39   作者:清風明月_xf  
还在为Python函数嵌套发愁吗?本文用通俗易懂的代码示例,详细讲解交叉嵌套和回环嵌套两种方式,帮你理清函数调用顺序、形参与实参的区别,轻松掌握嵌套函数的执行流程

函数嵌套的两种方式

一、交叉嵌套

交叉嵌套的方式是在本函数中调用同一级或上一级函数的嵌套方法:

一种编码形式

# -*- coding: utf-8 -*-
# @Time    : 2022/8/12 15:39
#定义函数func()
def func(foo):
    print(1)
    foo()
    print(3)

def a():
    print(1)

#调用函数func()
b = func(a)
print(b)

输出结果:

1
1
3
None

首先,程序会将 Python 文件中顶格的代码运行。函数 func 和 a 都是先开辟内存空间存储起来,但不会被执行。当程序走到赋值操作时,会先执行等号右边的代码。函数 func 被调用,函数 a 作为参数被传到 func 中。func 函数被执行,顺序也是从上往下,先是把 1 打印出来,然后调用参数 foo。

需要注意的是,foo 是形参,实参是 a。调用 foo 在此时的意思是调用函数 a。函数 a 被调用,又打印出一个 1 来。函数 a 运行完毕,返回至函数 func,继续执行下面的代码,打印出 3 来。最后,函数默认返回 None,赋值给 b。程序运行结束。

另一种编码形式

def func():
    print(1)
    print("我太难了")
    print(2)

def foo(b):
    print(3)
    ss = b()
    print(ss)
    print(4)

def f(a,b):
    a(b)

f(foo,func)

输出结果:

3
1
我太难了
2
None
4

跟上面一样,先将函数全都加载到新开辟的内存空间中,但不执行。到最后 f 函数被调用,foo 和 func 两个函数作为参数被传到函数 f 中。

在函数 f 中,foo 函数被调用,参数为 func 函数。进入到 foo 函数,先打印 3。到赋值语句,先执行等号右边的代码,函数 func 被调用。

在函数 func 中,打印三个内容 1、我太难了 和 2。函数默认返回值为 None,被赋值给 ss。打印 ss 就是打印 None。最后打印 4,然后返回到函数 f,再返回到全局空间。执行结束。

二、回环嵌套

回环函数就是在函数中调用下级函数的嵌套方法

代码如下(示例):

def func(a,b):
    def foo(b,a):
        print(b,a)
    return foo(a,b) #先执行函数调用
a = func(4,7)
print(a)

输出结果:

4 7
None

函数依然先存储在新开辟的空间中不会被调用。运行到赋值语句时,还是先执行等号右边的代码,将两个数字传到函数 func中。

在函数内部,依然是先开辟空间把函数 foo 放进去。运行到 return 不会马上终止函数,而是先运行 return 后面的代码。foo 函数被调用,传进去的值是 4 和 7,然后打印出来。

需要注意的是,函数 foo 的形参与函数 func 的形参是相同的,不要给搞混了。日常写代码时不建议这样使用。打印出 4 和 7 之后,运行到函数最后一行,函数默认返回 None。然后再赋值给 a,打印出来。

补充:函数调用时的实参和形参之间传递

定义函数基本格式如下:

def 函数名(参数表):
	函数语句
return 返回值

return代表着函数结束,选择性地返回一个值给调用函数。

参数和返回值都不是必须有的。

  • 定义函数时,参数表中的参数称为形式参数,简称形参;
  • 调用函数时,参数表中的参数称为实际参数,简称实参。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python操作Office(Word/Excel/PowerPoint)文档的功能库使用详解

    Python操作Office(Word/Excel/PowerPoint)文档的功能库使用详解

    Python提供了丰富的库来处理 Office 文档(Word、Excel、PowerPoint)、PDF 以及电子邮件等办公自动化任务,下面小编就和大家详细介绍一下它们的具体使用吧
    2026-03-03
  • Django解决CORS跨域问题的方案

    Django解决CORS跨域问题的方案

    Cross-Origin Resource Sharing(CORS) 跨域问题,在前后端后离项目,selenium , playweight 自动化测试代码中经常遇到,本文给大家介绍了Django解决CORS跨域问题的方案,文中有详细的代码讲解,需要的朋友可以参考下
    2024-03-03
  • Python协程的四种实现方式总结

    Python协程的四种实现方式总结

    今天继续给大家介绍Python关知识,本文主要内容是Python协程的四种实现方式。文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-01-01
  • python图片和二进制转换的三种实现方式

    python图片和二进制转换的三种实现方式

    本文介绍了将PIL格式、数组和图片转换为二进制的不同方法,包括使用PIL库、OpenCV和直接读取二进制,此外,还提到了数据传输中base64格式的应用,这些信息对需要进行图片数据处理和转换的开发者非常有用
    2024-09-09
  • python exit出错原因整理

    python exit出错原因整理

    这篇文章主要介绍了python exit出错原因整理,有需要的朋友们可以跟着参考学习下。
    2020-08-08
  • 使用Python实现操作Word评论和回复

    使用Python实现操作Word评论和回复

    在现代文档协作场景中,评论功能是实现团队审阅和反馈的重要工具,通过 Spire.Doc for Python 库,我们可以 Python 代码实现添加和管理 Word 文档中的评论,下面我们就来看看具体实现方法吧
    2026-06-06
  • Python中使用正则表达式及正则表达式匹配规则详解

    Python中使用正则表达式及正则表达式匹配规则详解

    这篇文章主要介绍了Python中使用正则表达式以及正则表达式匹配规则,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • python实现提取str字符串/json中多级目录下的某个值

    python实现提取str字符串/json中多级目录下的某个值

    今天小编就为大家分享一篇python实现提取str字符串/json中多级目录下的某个值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python中常用的十个函数介绍

    Python中常用的十个函数介绍

    这篇文章主要介绍了Python中常用的十个函数,shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,需要的朋友可以参考下
    2023-04-04
  • Python基础之列表常见操作经典实例详解

    Python基础之列表常见操作经典实例详解

    这篇文章主要介绍了Python基础之列表常见操作,结合实例形式详细分析了Python列表创建方式、内置函数与相关使用技巧,需要的朋友可以参考下
    2020-02-02

最新评论