2019-09-23-23:48:00 今日所學的內容有: ...
2019-09-23-23:48:00
今日所學的內容有:
一.重要知識點
1, 函數名的應用,第一類對象
函數名可以像變數一樣進行使用
1.賦值
2.作為list元素
3.作為參數
4.作為返回值
2, 閉包
內部函數訪問外部函數的局部變數.
註意:變數寫在全局是不安全的,所以有閉包,閉包可以防止其他程式改變這個變數
好處:
1.安全
2.常駐記憶體. 提高效率
3, 迭代器
可迭代對象(Iterable):內部包含__iter__().
迭代器(Iterator): 內部含有__iter__() __next__()
可迭代對象:str, list, tuple, set, dict、range
迭代器:f
dir()來查看一個對象,數據類型中包含了哪些東西
迭代到最後一個元素之後. 再進行迭代就會報錯
isinstence(對象, 類型) 判斷xx對象是否是xxx類型的
迭代器一定是可迭代的
我們可以使⽤用__closure__來檢測函數是否是閉包. 使⽤用函數名.__closure__返回cell就是閉包. 返回None就不是閉包
迭代器的特點:
1.省記憶體
2.惰性機制
3.只能向前.
二.錯誤總結
1.記憶體地址的概念
def extendList(val,list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')
print('list1=%s' % list1)
print('list2=%s' % list2)
print('list3=%s' % list3)
#註意:這裡是容易出錯在記憶體地址的指向是否有改變
最後真的有點不知道怎樣寫博客好.有點難受.