影子在啊 发表于 2022-4-3 17:29:08

Python 函数求助

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 也是
求告知这俩括号的作用 以及结果为啥不一样

ba21 发表于 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)
页: [1]
查看完整版本: Python 函数求助