闭包的功能举例
閉包可以在函數外部或者其他函數內,訪問本函數內的變量:
閉包可以使變量持久,常駐內存,又可以避免變量被外部修改
1 def func(): 2 name = "大傻子" #定義個name = "大傻子" 3 def func1(): 4 return name #把name返回給func1 5 return func1 #把func地址返回給func 6 7 def func2(): 8 name = func()() #把func1的返回值name = "大傻子" 賦值給新name 9 def func3(): 10 print(name) #打印新name = "大傻子" 11 print("哈哈") 12 return "嘻嘻" #返回字符串"哈哈"給func3 13 return func3 #返回func3的地址給func2 14 print(func2()) #調用func2,返回func3地址 15 print(func2()()) #調用func3,返回"嘻嘻"結果對照:
1 大傻子 2 哈哈 3 嘻嘻如何查看函數是否是閉包:(未粘貼上面代碼)
1 print(func() .__closure__) #查看函數是否是閉包,,返回非None就是閉包 2 print(func2() .__closure__) #查看函數是否是閉包,,返回非None就是閉包結果對照:
1 (<cell at 0x0000022D0785C888: str object at 0x0000022D0783BF90>,) 2 (<cell at 0x0000022D0785C888: str object at 0x0000022D0783BF90>,)?
轉載于:https://www.cnblogs.com/NoteBook3013/p/10249559.html
總結
- 上一篇: [机器视觉] SIFT特征-尺度不变特征
- 下一篇: t470键盘拆解_ThinkPad T4