python 知識點小結

1. python的內存管理python

  • python的內存管理是引用了內存池的管理,採用pymalloc的機制用於對小塊內存的申請與管理。
  • 內存池的概念是預先在內存中申請必定數量的,大小相等(鉅細相等)的內存塊供留做備用,當有新的內存申請時,先從內存池分配需求所需內存,當內存池不能知足時,在申請新內存,這樣減小了內存碎片,增長了使用效率。
  • pymalloc的內存處理機制:分被對應兩種,對於小塊內存申請(小於256bits時),會在內存池中請求內存空間;當大於256bits,則會直接履行new/malloc的行爲來請求內存空間。 關於釋放內存方面,當一個目標的引用計數變爲0時,python就會調用它的析構函數。在析構時,也採用了內存池機制,從內存池來的內存會被歸還到內存池中,以防止頻頻地釋放動做。

2. python下多線程的限制以及多進程中傳遞參數的方式多線程

  • 存在python解釋器的GIL全局鎖,同一時間只能一個線程執行,是一種併發
  • 多進程間同享數據,可以運用 multiprocessing.Value 和 multiprocessing.Array

3. 什麼是lambda函數?它有什麼好處?併發

  • lambda是一個無名函數。add = lambda x, y : x+y add(5,3) #能夠這樣使用
  • sorted(list1, key=lambda x: abs(x))
  • Python中最多見的filter篩選、map小刷子、reduce合併,均可以用lambda
  • list(map(lambda x:x*x,range(1,21)))
  • list(filter(lambda x:x%2 == 0,range(1,21)))
  • reduce(lambda x,y:x+y,range(1,101),10000)

4. 解釋一下python的and-or語法函數

  • 相似於C中的三目運算符,bool?a:b. == bool and a or b
  • 當a爲假時,不能正確輸出。因此改成 bool and [a] or [b]
  • 因爲 [a] 是一個非空列表,它永久不會爲假。甚至 a 是 0 或 '' 或其它假值,列表[a]爲真,因爲它有一個元素。
相關文章
相關標籤/搜索