Discuss / Python / 请各位大佬帮解一下这个关于返回函数的问题,非常感谢!

请各位大佬帮解一下这个关于返回函数的问题,非常感谢!

SherryMaoMAO

#1 Created at ... [Delete] [Delete and Lock User]
输入以下代码并运行,会出现这样的错误:
Traceback (most recent call last):
  File "D:\work\2019.py", line 9, in <module>
    print(a1(), a2(), a3())
TypeError: 'int' object is not callable

def count():
    fs = []
    for i in range(1, 4):
        def func(i):
            return i * i
        fs.append(func(i))
    return fs
a1, a2, a3 = count()
print(a1(), a2(), a3())
修改代码为:
def count():
    fs = []
    for i in range(1, 4):
        def func(i):
            return i * i
        fs.append(func(i))
    return fs
a1, a2, a3 = count()
print(a1, a2, a3)
# 输出结果是:
# 1
# 3
# 9

请问第一段代码为什么会出现错误,调用函数难道不是加()吗,为什么不加括号的反倒可以调用?希望各位大神帮解答一下,谢谢


  • 1

Reply