脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python函数的两种嵌套方法使用

python函数的两种嵌套方法使用

2022-11-21 10:42小小程序员ol Python

本文主要介绍了python函数的两种嵌套方法使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

python函数的两种嵌套方法使用
函数的嵌套有两种方式:

  • 交叉嵌套
  • 回环嵌套

交叉嵌套

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

?
1
2
3
4
5
6
7
8
9
10
def func(foo):
    print(1)
    foo()
    print(3)
    
def a():
    print(1)
 
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。程序运行结束。

再看下面的代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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,再返回到全局空间。执行结束。

回环函数

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

?
1
2
3
4
5
6
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,打印出来。

到此这篇关于python函数的两种嵌套方法使用的文章就介绍到这了,更多相关python函数嵌套内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/python960410445/p/16083933.html

延伸 · 阅读

精彩推荐
  • PythonPython实现敏感词过滤的4种方法

    Python实现敏感词过滤的4种方法

    这篇文章主要介绍了Python实现敏感词过滤的4种方法,帮助大家处理不和谐的言论,感兴趣的朋友可以了解下...

    我被狗咬了30032020-09-14
  • Pythonpython如何查看网页代码

    python如何查看网页代码

    在本篇文章里小编给大家整理了关于python查看网页代码方法,需要的朋友们可以参考学习下。 ...

    尤及5822020-06-08
  • PythonPython实现二分查找算法实例

    Python实现二分查找算法实例

    这篇文章主要介绍了Python实现二分查找算法,实例分析了二分查找算法的原理与相关实现技巧,需要的朋友可以参考下...

    buaa_shang8492020-07-07
  • PythonPython自动化读取邮件基础代码讲解

    Python自动化读取邮件基础代码讲解

    大家好,在之前的文章中我们已经了解如何对自己的邮箱做一些代码操作前的基础配置,也学会了通过 yagmail 发送邮件。...

    早起Python9802021-02-02
  • PythonPython 中 a=a+b 与 a+=b 有什么不同?

    Python 中 a=a+b 与 a+=b 有什么不同?

    只要熟悉 Python,那么你肯定知道 a=a+b 与 a+=b 都可以实现对对象 a 的自增操作,可以除此之外,他们有什么不同呢?如果这个是面试题,你会怎么回答呢?...

    Python七号8842021-08-09
  • Pythonpython获取外网ip地址的方法总结

    python获取外网ip地址的方法总结

    这篇文章主要介绍了python获取外网ip地址的方法,实例总结了四种常用的获取外网IP地址的技巧,需要的朋友可以参考下...

    不吃皮蛋14412020-07-19
  • Pythonmatlab和Excel的数据交互操作(非xlsread和xlswrite)

    matlab和Excel的数据交互操作(非xlsread和xlswrite)

    在使用MATLAB时,可能会遇到很多表格数据的处理,有时MATLAB也需要利用现存的表格数据实现操作目的,下面这篇文章主要给大家介绍了关于matlab和Excel的交互操...

    肆拾伍10762021-12-18
  • Pythonpython 移动图片到另外一个文件夹的实例

    python 移动图片到另外一个文件夹的实例

    今天小编就为大家分享一篇python 移动图片到另外一个文件夹的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    别说话写代码9462021-05-13