作业
Topic source直接yield L 的话,L指向的内存位置假设是 L1,result里保存的值就是指向L1的,L.append(0)是会修改L1的值,导致result中的值被修改为L.append的值。可以通过print(id(对象)),来查看对象的内存位置,这可能可以更好的帮助你理解
太妙了,哈哈哈啊哈。
三楼的,不要b也可以运行
def triangle(): L =[1] while True: yield L L.append(0) L=[L[i]+L[i-1] for i in range(len(L))]
- 1
- 2
GARRY2019
def triangle():
L =[1]
while True:
b=L.copy()
yield b
L.append(0)
L=[L[i]+L[i-1] for i in range(len(L))]