当前位置: 代码迷 >> 综合 >> Python闭包练习
  详细解决方案

Python闭包练习

热度:8   发布时间:2024-02-26 10:14:20.0

 匿名函数、函数、闭包、对象之间的关系:

1.匿名函数:完成最基本的函数功能

2.函数:完成比较复杂的功能

3.闭包:能够同时传递数据 + 完成功能的函数

4.对象:完成最为复杂的功能,并且能够传递数据

def func(a, b):# 定义一个cc = 2def call_func():print('*' * 20)print('在闭包中改变外部变量需要加:nonlocal')# 在闭包中改变外部已经定义的值需要加:nonlocalnonlocal c# 改变c的值c = 5print('c = ', c)print('此时c的地址是:', id(c))print('*' * 20)# 将函数传入的值进行运算print('a+b的结果是:', a+b)# .__closure__函数返回cell则此函数为闭包,返回Non则不是闭包print(call_func.__closure__)print('c = ', c)print('此时c的地址是:', id(c))return call_funcf = func(2, 10)
f()

 

  相关解决方案