python 小兵(6)函数根据问题详解

_list = []
for i in range(3):
  def func(a):
    return i+a
_list.append(func)
for f in _list:
  print(f(1))

首先操作_list.append(func)传入func的mac地址,然后打印列表出现的f是func的地址,然后通过print调用func函数,单数range已经运行完i=2所以答案等于3

_list = []
for i in range(3):
def func(i):
def f_closure(a): # <<<---
return i + a
return f_closure
_list.append(func(i)) # <<<---
for f in _list:
print(f(1))

这里面append添加的是函数所以f循环迭代的f也是地址"func(i)"但是是有值得mac地址.

猜你喜欢

转载自www.cnblogs.com/huhuxixi/p/10265950.html