鱼C论坛

 找回密码
 立即注册
查看: 1001|回复: 1

[已解决]Python 函数求助

[复制链接]
发表于 2022-4-3 17:29:08 | 显示全部楼层 |阅读模式

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

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

x
def funX():
    x = 5
    def funY():
        nonlocal x
        x += 1
        return x
    return funY

a = funX()
print(a())
print(a())
print(a())


def funX():
    x = 5
    def funY():
        nonlocal x
        x += 1
        return x
    return funY()

a = funX()
print(a)
print(a)
print(a)
这俩结果前面一个是6 7 8  后面是6 6 6
一个funY没括号 一个有括号 a 也是
求告知这俩括号的作用 以及结果为啥不一样
最佳答案
2022-4-3 18:33:05
def funX():
    x = 5
    return x

a = funX # 把funX的地址赋给a
print(a) # 打印出来是个地址
print(a()) # 让a来加()。打印出了值
# 终上所述 加()就是取函数返回的值,不加便是获取地址。闭包(函数里面嵌套函数道理一样)

# 再看
a = funX() # 在调到时就加上(),意思就是把funX返回的值赋值给a
print(a)

# 以下2个功能一样,获取方法不同
a = funX
print(a())

a = funX()
print(a)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-3 18:33:05 | 显示全部楼层    本楼为最佳答案   
def funX():
    x = 5
    return x

a = funX # 把funX的地址赋给a
print(a) # 打印出来是个地址
print(a()) # 让a来加()。打印出了值
# 终上所述 加()就是取函数返回的值,不加便是获取地址。闭包(函数里面嵌套函数道理一样)

# 再看
a = funX() # 在调到时就加上(),意思就是把funX返回的值赋值给a
print(a)

# 以下2个功能一样,获取方法不同
a = funX
print(a())

a = funX()
print(a)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 06:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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