返回函数中,为什么输入g()不能调用g方法,x()就可以呢,还有什么方法,可以调用g()函数方法,让其打印g方法的语句呢

来源:8-7 Python返回函数

高飞的鱼

2022-02-24 14:45

def f():
    print('call f()...')
    # 定义函数g:
    def g():
        print('call g()...')
    # 返回函数g:
    return g
>>>   # 调用f()
call f()...
>>> x   # 变量x是f()返回的函数:
<function f.<locals>.g at 0x7f4a4936dbf8>
>>>   # x指向函数,因此可以调用
call g()...   # 调用x()就是执行g()函数定义的代码


写回答 关注

1回答

  • qq_慕婉清6326688
    2022-07-24 15:30:08

    因为g()在f()内部,所以无法直接访问g(),

    变量x是f()返回的函数,它指向g(),调用x()就是执行g()函数定义的代码


Python3 进阶教程(新版)

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

41910 学习 · 236 问题

查看课程

相似问题