Discuss / Python / 请教最后一个例子

请教最后一个例子

Topic source

def count():

    fs = []

    for i in range(1, 4):

        def f(i):

             return i*i

        fs.append(f(i))#这样f()应该也算可以被立刻计算吧

    return fs

f1, f2, f3 = count()

f1()

为什么我这样写,会出现

Traceback (most recent call last):

  File "input.py", line 14, in <module

    f1()

TypeError: 'int' object is not callabl

这样是错误,网上查这种错误是关键词重复了,但是我f(),应该是同一样东西啊,为什么系统会报错。

眼泪809_458

#2 Created at ... [Delete] [Delete and Lock User]

这么写 返回的不是 计算函数了 直接就是个集合了

齐天大肥

#3 Created at ... [Delete] [Delete and Lock User]

你这样写

        def f(i):

             return i*i

那后面的 f(i)返回的是一个值,不是一个函数,所以不用写调用函数f1(),而是直接写f1,运行就会得到1,写f2,就得到4这样了。

ln拒绝

#4 Created at ... [Delete] [Delete and Lock User]

f1是数值,不是函数了,把f1()改成f1应该就可以了

梦VS江楠

#5 Created at ... [Delete] [Delete and Lock User]

返回的是一个int数据类型,已经不是函数了,不能调用,直接输出print(f1, f2, f3)

或者直接f1 = count()返回一个list,然后直接输出print(f1)


  • 1

Reply