1. 程式人生 > >2018年秋招面試常見python和資料結構知識點總結

2018年秋招面試常見python和資料結構知識點總結

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如何複製物件: