首页 新闻 会员 周边 捐助

关于python里面 有像js的let方式申明变量吗?

0
[待解决问题]
比如这段代码:

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

f1,f2,f3=count()

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

输出的结果都是9,那么如何改代码才能输出1 4 9那?(还是使用闭包的方式)
小狐狸狗狗的主页 小狐狸狗狗 | 菜鸟二级 | 园豆:204
提问于:2018-03-15 10:28
< >
分享
所有回答(2)
0
def count():
    fs = []
    for i in range(1, 4):
        fs.append(i*i)
    return fs


f = count()

print(f)

# RESULT
# [1, 4, 9]
BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2018-03-15 10:40

这样肯定是可以的,但是就想使用闭包的方式来实现...

支持(0) 反对(0) 小狐狸狗狗 | 园豆:204 (菜鸟二级) | 2018-03-15 10:41
-1

def count():
fs = [];
def func1(i):
def func2():
return i * i;
return func2;

for i in range(1, 4):
fs.append( func1(i) );

return fs;

f1, f2, f3 = count();

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

输出1 4 9

 

虽然这样代码实际开发不会写,但是作为了解闭包还是有用的吧……

小狐狸狗狗 | 园豆:204 (菜鸟二级) | 2018-03-15 11:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册