python入门函数编程_零基础入门Python3-函数式编程(3)

# 实例3分析

def func1():

# 首先定义 func1 这个函数

ls=[]

# 接着定义 空的列表ls

for i in range(1,4):

# for循环,并分次把 1,2,3 赋值给变量 i

for i in range(1,4):

def func2():

return i*2

ls.append(func2)

return ls

# 红色的部分为 for 循环的内部语句,for 循环的次数为3次。首先 for 每次循环都要创建新的函数 func2,函数的返回值为 变量 i * 2。函数创建完毕后,接着运行 ls.append(func2),添加的值为函数,并不是直接添加计算结果。for 循环完毕后,返回列表 ls。最后把函数 func1 的返回值分别赋值给 a1,a2,a3。

# 以上是程序的运行过程,我们接着来说内部的运行逻辑。当然,主要是红色部分的代码。

for i in range(1,4):

def func2():

return i*2

ls.append(func2)

# 首先,for 循环生成了 i=1 的变量,开始第一次循环,创建一个新的函数func2,接着运行ls.append(func2),向列表 ls 添加一个元素,这个元素是一个函数 fun2,但是函数并没有运行起来,而是相当于 "挂" 起来了,就此第一次循环完毕。

# 接着第二次循环,i=2,创建一个新的函数 func2,接着想 ls 添加函数 func2,和第一次一样,函数并没有运行,第二次循环完毕。

# 第三次循环 i =3,创建一个新的函数 func2,接着想 ls 添加函数 func2,和第一次一样,函数并没有运行,第三次循环完毕。

# 这时候,for 循环完,i 的值为3。接着返回列表 ls 。这时,函数 func1 也已经定义完。

# 运行 a1,a2,a3=func1(),把列表 ls 中的三个函数分别赋值给a1,a2,a3

# 接着运行 print(a1())  print(a2())  print(a3()),这时候的a1,a2,a3已经是代表的三个对应的函数。此时,函数 func2才真正的运行起来了,可 i 的值已经为3了。所以三个函数的输出值都为 6 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值