Discuss / Python / 有没有括号差别好大

有没有括号差别好大

Topic source

在例子这里,如果把fs.append(f)改成fs.append(f())就可以正常输出149了

def count():
    fs = []
    for i in range(1, 4):
        def f():
             return i*i
        fs.append(f)
    return fs

f1, f2, f3 = count()

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

确实捏,但是直接改成fs.append(f())的话输出的就是f()执行后的数了,原本是要输出函数的呀,我是这样认为的

刘明阳

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

改成这样也可以

def f(i = i):     return i*ifs.append(f)

f相当于一个指向函数的变量,f()才代表调用这个函数


  • 1

Reply