python中的内嵌函数

 

python允许在函数内部定义另一个函数,这种函数称为内嵌函数或者内部函数。

1、例

复制代码
>>> def a():        ## a外层函数,b为内层函数
    print("hello world!")
    def b():
        print("xxxxx!")
    b()

    
>>> a()
hello world!
xxxxx!
>>> b()         ## 函数b的作用域都在函数a内,别的地方无法调用函数b。
Traceback (most recent call last):
  File "<pyshell#1032>", line 1, in <module>
    b()
NameError: name 'b' is not defined
复制代码
复制代码
>>> def a():
    print("hello world!")
    def b():
        print("xxxxxx!")
    return b()

>>> a()
hello world!
xxxxxx!
>>> def a():
    print("hello world!")
    def b():
        print("xxxxxx!")
    return b

>>> a()
hello world!
<function a.<locals>.b at 0x000002224043B550>
>>> a()()
hello world!
xxxxxx!
复制代码

 

2、在嵌套函数中,内部函数可以引用外部函数的局部变量

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

>>> a()
x value =  100
y value =  200
复制代码

 

 

3、python允许在函数内部定义另一个函数,这种函数称为内嵌函数或者内部函数。

示例:

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

>>> a(3)(8)
x =  3
y =  8
x * y =  24
>>> a(5)(9)
x =  5
y =  9
x * y =  45
复制代码

 

复制代码
>>> def a(x):
    print("x = ",x)
    def b(y):
        print("y = ",y)
        print("x + y = ", x + y)
        print("x - y = ", x - y)
        print("x * y = ", x * y)
        print("x / y = ", x / y)
    return b

>>> a(8)(2)
x =  8
y =  2
x + y =  10
x - y =  6
x * y =  16
x / y =  4.0
复制代码

 

posted @   小鲨鱼2018  阅读(427)  评论(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 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示