问答详情
源自:8-7 Python返回函数

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

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()函数定义的代码


提问者:高飞的鱼 2022-02-24 14:45

个回答

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

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

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