2018年秋招面試常見python和資料結構知識點總結
阿新 • • 發佈:2018-12-14
python中的深拷貝和淺拷貝的定義:
在python中物件的賦值就是物件的引用,當建立一個物件把他賦值給另一個變數時,Python只是拷貝了物件的引用而已。
淺拷貝:拷貝了最外圍物件本身,內部的元素只是拷貝了一個引用而已,也就是隻複製物件,物件的引用不復制。
深拷貝:外圍和內部元素都進行了拷貝物件本身,而不是引用,把物件複製了一遍,並且該物件中引用的其他物件也複製。
python中的函式:
def foo(): 定義函式
return 1
foo() 呼叫函式
定義類:
class 類名: def 方法1(self,引數列表): self指哪一個物件呼叫的方法就是哪一個物件的引用。 pass def 方法2(self,引數列表): pass
python捕獲異常:
try:
執行的程式碼
except:
錯誤的程式碼
面向物件和麵向過程
面向過程:強調的是步驟。
面向物件:強調的是功能。
封裝:根據職責將屬性和方法封裝到一個抽象的類中。
繼承:實現程式碼的重用
多型:不同的子類呼叫相同的方法產生不同的結果
python中的閉包:
閉包指根據不同的配置資訊得到不同的結果。
id命令:
python中的id命令用來檢視記憶體地址。
python中的裝飾器:
為了給某段程式新增功能,但該程式已經上線或已經被使用,那麼不需要批量修改原始碼裝飾器用於拓展原來 函式功能,特殊之處在於他的返回值也是一個函式。使用@符號可以將裝飾器應用到函式。 @outer 一個修飾符就是一個函式。
python中的kwargs和*args:**
**kwargs引數表示的就是一個字典。
*args用來將引數打包成tuple給函式用。
python的記憶體分配以及垃圾回收:
python採用計數的方式來管理分配記憶體,python的每個物件都有一個引用計數,這個引用計數表明了有多少個物件指
向他,計數為0即表示釋放。
python中的GC模組主要運用了引用計數來跟蹤和回收垃圾,還可以通過‘標記--清除’解除可能出現的迴環問題。
python多執行緒:
1.解耦降低關聯性
2.支援併發
3.支援忙閒不均,防止以此製造太多來不及處理,等生產者慢下來再處理。
python遍歷列表的4種方法:
app_list = [1234,5678,9999]
for app_id in app_list:
print app_id
for index,app_id in enumerate(app_list):
print index,app_id
enumerate()說明
enumerate()是python的內建函式
enumerate在字典上是列舉、列舉的意思
對於一個可迭代的(iterable)/可遍歷的物件(如列表、字串),enumerate將其組成一個索引序列,利用它可以
同時獲得索引和值enumerate多用於在for迴圈中得到計數
for i in range (len(app_list)):
print i,app_list[i]
for app_id in iter(app_list):
print app_id
iter()函式有兩種用法,一種是傳一個引數,一種是傳兩個引數。結果都是返回一個iterator物件。
python型別轉換:
num_list=[1,2,3,4]
type(num_list)
num=tuple(num_list) 轉換為元祖型別
type(num_list)
python刪除列表重複資料:
b=list(set(num_list))會從大到小排列
python如何複製物件: