猿问

看完这个你就恍然大悟了

def count():

    fs = []

    for i in range(1, 4):

        def f(i):

            def g():

                return i*i

            return g

        fs.append(f(i))

    return fs


f1, f2, f3= count()

print f1(), f2(), f3()


很多人,对于f1, f2, f3= count()这一句很疑惑。这句话的意思是把count()返回的list中的三个值分别赋给f1,f2,f3

而不是把count返回的list分别赋给f1f2f3.

我一开始也烦了这样的毛病,原因就是Java、C#、C++语音留下的思维定式。

f1, f2, f3= count()这一句等价于

a,b,c=[1,2,3]此时a=1,b=2,c=3只是把list中的值分别取出来。如同for key,value in {'key',vaule}一个道理。哎不知道说的明白不?!!!


冰海
浏览 1168回答 0
0回答
随时随地看视频慕课网APP

相关分类

Python
我要回答