pythonj 迭代问题,求详解
_list = []for i in range(3):
def func(): #是闭包吗?
return i+1
func.__doc__ = i
func.__hash__ = i
func.__repr__ = i
func.__defaults__ = tuple() #这个属性必须是tuple类型
func.__name__ = f'{i}'
func.hello = i#自定义一个属性并赋值
# 不能再玩了
_list.append(func)
for f in _list:
print(f.__doc__,
f.__hash__,
f.__repr__,
f.__defaults__,
f.__name__,
f.hello,
f(), #为什么迭代三次,f()都是同一个值3
)
# 输出
# 0 0 0 (0,) 0 0 3
# 1 1 1 (1,) 1 1 3
# 2 2 2 (2,) 2 2 3
_list = []
for i in range(3):
def func(): #是闭包吗?
return i+1
func.__doc__ = i
func.__hash__ = i
func.__repr__ = i
func.__defaults__ = tuple() #这个属性必须是tuple类型
func.__name__ = f'{i}'
func.hello = i#自定义一个属性并赋值
# 不能再玩了
_list.append(func)
i = 99#多加一行你就懂了
for f in _list:
print(f.__doc__,
f.__hash__,
f.__repr__,
f.__defaults__,
f.__name__,
f.hello,
f(), #迭代三次,f()都是同一个值100
)
# 输出
# 0 0 0 (0,) 0 0 100
# 1 1 1 (1,) 1 1 100
# 2 2 2 (2,) 2 2 100
还是不明白,希望老师详细说明
页:
[1]