为了账号安全,请及时绑定邮箱和手机立即绑定

例题中的语句将fs.append(f)改为fs.append(f())

例题中的语句将fs.append(f)改为fs.append(f())

后面打印f1 时值是1,打印f2时候值是4, f3 是9.请问各位,这个逻辑是神马?

正在回答

1 回答

f返回的是一个函数,f()是返回函数的值

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

f1, f2, f3 = count()
print(f1,f2,f3)
def count():
   fs = []
   for i in range(1, 4):
       def f():
            return i*i
       fs.append(f)
   return fs   #fs = [f f f],是函数

f1, f2, f3 = count()
print(f1(),f2(),f3())


2 回复 有任何疑惑可以回复我~
#1

慕后端2583565 提问者

非常感谢!
2016-07-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

例题中的语句将fs.append(f)改为fs.append(f())

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信