递归

复制代码
复制代码
打印的444   函数内存地址不同 但是不这么的话  两个内存地址 不同  函数体的内存地址相同 第二种不同  因为执行完了 for  所以 i =2  
l = [] for i in range(3): def fun(x ): #新建一个 内存地址存放 print(x*i) # z = x * i # print(z) # print(id(i)) print(x*i) print(id(x*i)) # print(id(z)) # print(id(fun),id(print(x*i))) # print(i) # print(id(fun),id(print())) # print(i) # print(id(y*x)) # print(fun) l.append(fun) for fun in l: fun(2) # print(fun)
复制代码
复制代码
#  第一种 第二种 i y 已经有值 了 l 中的func  只有 x 没有值  第二种 因为每一次函数定义 把值给了它    0  1   2  打印的024  
l = [] for i in range(3): # def fun(x, y=i ): def fun(x): # print(x*y) print(x*i) l.append(fun) # l = [fun,fun,fun] x*i I= 2 # fun(2) #x*y for 循环先执行 说明已经把值存进去了 #l = [fun,fun,fun] # y = 1 y =2 y =3 # for fun in l: # fun(2) print(l) #[<function fun at 0x000000000254B268>, <function fun at 0x000000000254B2F0>, <function fun at 0x000000000254B378>] print(l[0])# print(l[0](4)) l[0](2) # [<function fun at 0x000000000259B268>, <function fun at 0x000000000259B2F0>, <function fun at 0x000000000259B378>]第二种也是
复制代码

 

复制代码

 

posted @   learnacode  阅读(148)  评论(0编辑  收藏  举报
编辑推荐:
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
阅读排行:
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 如何打造一个高并发系统?
点击右上角即可分享
微信分享提示