python中的内嵌函数

 

1、

复制代码
>>> def a():
    print("fun a is running!")
    def b():
        print("fun b is running!")
    b()

    
>>> a()         ## 示例中函数b是函数a的内嵌函数
fun a is running!
fun b is running!
复制代码
>>> b()      ## 内嵌函数只能在函数内部调用
Traceback (most recent call last):
  File "<pyshell#719>", line 1, in <module>
    b()
NameError: name 'b' is not defined

 

2、

复制代码
>>> def a():
    x = 100
    def b():
        print("x = ",x)
    b()

    
>>> a()      ## 内嵌函数可以调用外层函数的变量
x =  100
复制代码

 

3、

复制代码
>>> x = 500
>>> def a():
    x = 100
    def b():
        x = 10
        print("x = ", x)
    b()

    
>>> a()        ## 此种清空,函数调用自身定义的变量
x =  10
复制代码

 

4、

复制代码
>>> x = 500
>>> id(x)
2137596545936
>>> def a():
    x = 100
    print(id(x))
    def b():
        x = 10
        print(id(x))
    b()

    
>>> a()
140731529356032
140731529353152
## LEGB原则 ????
复制代码

 

posted @   小鲨鱼2018  阅读(120)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示