def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs
f1, f2, f3 = count()
根据我的理解,f1,f2,f3分别作为count这个函数三次调用f所创造的返回函数,那怎样才能获得count这个函数本身的返回值——fs这个list呢?
如果直接调用count()会出现下面的情况: [< function count.<locals>.f at 0x05A4F390>, < function count.<locals>.f at 0x05A4F348>, < function count.<locals>.f at 0x05A4F150>]
尝试多次均无果,想请教下各位朋友,如何获取fs?
请问一下,fs这个list里面的组成是不是几个函数???f1,f2,f3是分别调取fs里面的函数吗??
count()调用之后返回的是一个元素为函数的列表,所以count这个函数本身的返回值就是那些函数对象,也就是f1是count函数列表里的第一个元素,f2是第二个,以此类推。 也可以把f1,f2,f3 = count()替换为f = count(),调用时这样写:f0,f1,f2这样就等价于前面的调用f1(),f2(),f3()。 如果实在是不理解还可以在f()函数里,在returni*i 前面和fs。append()前面加上print(i)就知道这个是怎么运行的了
Sign in to make a reply
畋恬天
def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs
f1, f2, f3 = count()
根据我的理解,f1,f2,f3分别作为count这个函数三次调用f所创造的返回函数,那怎样才能获得count这个函数本身的返回值——fs这个list呢?
如果直接调用count()会出现下面的情况: [< function count.<locals>.f at 0x05A4F390>, < function count.<locals>.f at 0x05A4F348>, < function count.<locals>.f at 0x05A4F150>]
尝试多次均无果,想请教下各位朋友,如何获取fs?