鱼C论坛

 找回密码
 立即注册
查看: 2242|回复: 3

[已解决]闭包和内嵌函数课后题

[复制链接]
发表于 2021-4-28 22:01:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def funOut():
    def funIn():
        print('宾果!你成功访问到我啦!')
    return funIn

为什么这里直接用funOut()无法得到“宾果!你成功访问到我啦”,funOut()()就可以啊
最佳答案
2021-4-28 22:06:21
>>> def o():
        def i():
                print('哈哈哈')
        return i

>>> o()
<function o.<locals>.i at 0x0000018DB17C9700>
>>> o()()
哈哈哈
>>> help(o)
Help on function o in module __main__:

o()

>>> help(o())
Help on function i in module __main__:

i()

>>> help(o()())
哈哈哈
Help on NoneType object:

class NoneType(object)
 |  Methods defined here:
 |  
 |  __bool__(self, /)
 |      self != 0
 |  
 |  __repr__(self, /)
 |      Return repr(self).
 |  
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |  
 |  __new__(*args, **kwargs) from builtins.type
 |      Create and return a new object.  See help(type) for accurate signature.
照着写,然后用心品味一下出现的文字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-28 22:06:21 | 显示全部楼层    本楼为最佳答案   
>>> def o():
        def i():
                print('哈哈哈')
        return i

>>> o()
<function o.<locals>.i at 0x0000018DB17C9700>
>>> o()()
哈哈哈
>>> help(o)
Help on function o in module __main__:

o()

>>> help(o())
Help on function i in module __main__:

i()

>>> help(o()())
哈哈哈
Help on NoneType object:

class NoneType(object)
 |  Methods defined here:
 |  
 |  __bool__(self, /)
 |      self != 0
 |  
 |  __repr__(self, /)
 |      Return repr(self).
 |  
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |  
 |  __new__(*args, **kwargs) from builtins.type
 |      Create and return a new object.  See help(type) for accurate signature.
照着写,然后用心品味一下出现的文字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-4-28 22:30:50 | 显示全部楼层
函数名 返回地址  函数名() 获取值

函数的正确调用方式:  函数名()

>>> def test():
        return 8

>>> test
<function test at 0x0000000002B53AE8>
>>> test()
8


所以你这里是:
funOut() 得 funIn的地址
funOut()() 才得 funIn函数的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-30 22:49:37 | 显示全部楼层
你懂了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 00:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表