Python返回内两层函数

来源:8-7 Python返回函数

LiuHefeng

2023-05-29 09:41

def f():
   print('call f()...')

   # 定义函数g:
   def g():
       print('call g()...')

       # 定义函数h
       def h():
           print('call h()...')

       # 返回函数h
       return h

   # 返回函数g:
   return g


x = f()
print(x)
y = x()
print(y)
z = y()
print(z)

>>> <function f.<locals>.g at 0x0000020E584749A0>

>>> call g()...

>>> <function f.<locals>.g.<locals>.h at 0x0000020E58474F40>

>>> call h()...

>>> None


为什么z作为返回函数h的对象,却没有地址呢?


写回答 关注

1回答

  • weixin_慕九州1173902
    2025-01-06 16:06:23

    z=y()  调用的 最里面的h()函数,该函数没有返回值,所以z是None

    def h():
               print('call h()...')

Python3 进阶教程(新版)

学习函数式、模块和面向对象编程,掌握Python高级程序设计

42419 学习 · 239 问题

查看课程

相似问题