自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python工程師需要掌握的面試題

開發(fā) 后端
本文總結(jié)了Python工程師需要掌握的面試題,快來看看吧,希望對你有幫助!

 1、Python有哪些特點和優(yōu)點? 

  1. 答:作為一門編程入門語言,Python主要有以下特點和優(yōu)點:  
  2. 可解釋  
  3. 具有動態(tài)特性  
  4. 面向?qū)ο?nbsp; 
  5. 簡明簡單  
  6. 開源  
  7. 具有強大的社區(qū)支持 

2、深拷貝和淺拷貝之間的區(qū)別是什么? 

  1. 答:深拷貝就是將一個對象拷貝到另一個對象中,這意味著如果你對一個對象的拷貝做出改變時,不會影響原對象。在Python中,我們使用函數(shù)deepcopy()執(zhí)行深拷貝,導(dǎo)入模塊copy,如下所示:  
  2. >>> import copy  
  3. >>> b=copy.deepcopy(a) 
  4. 而淺拷貝則是將一個對象的引用拷貝到另一個對象上,所以如果我們在拷貝中改動,會影響到原對象。我們使用函數(shù)function()執(zhí)行淺拷貝,使用如下所示:
  5. >>> b=copy.copy(a)

3. 列表和元組之間的區(qū)別是? 

  1. 答:二者的主要區(qū)別是列表是可變的,而元組是不可變的。舉個例子,如下所示:  
  2. >>> mylist=[1,3,3]  
  3. >>> mylist[1]=2  
  4. >>> mytuple=(1,3,3)  
  5. >>> mytuple[1]=2  
  6. Traceback (most recent call last):  
  7. File "<pyshell#97>", line 1, in <module>  
  8. mytuple[1]=2  
  9. 會出現(xiàn)以下報錯:  
  10. TypeError: ‘tuple’ object does not support item assignment 

4、在Python中如何實現(xiàn)多線程? 

  1. 答:一個線程就是一個輕量級進程,多線程能讓我們一次執(zhí)行多個線程。  
  2. 我們都知道,Python是多線程語言,其內(nèi)置有多線程工具包。  
  3. Python中的GIL(全局解釋器鎖)確保一次執(zhí)行單個線程。  
  4. 一個線程保存GIL并在將其傳遞給下個線程之前執(zhí)行一些操作,這會讓我們產(chǎn)生并行運行的錯覺。  
  5. 但實際上,只是線程在CPU上輪流運行,當然,所有的傳遞會增加程序執(zhí)行的內(nèi)存壓力。 

5、解釋一下Python中的繼承 

  1. 答:當一個類繼承自另一個類,它就被稱為一個子類/派生類,繼承自父類/基類/超類。它會繼承/獲取所有類成員(屬性和方法)。  
  2. 繼承能讓我們重新使用代碼,也能更容易的創(chuàng)建和維護應(yīng)用。Python支持如下種類的繼承:  
  3. 單繼承:一個類繼承自單個基類  
  4. 多繼承:一個類繼承自多個基類  
  5. 多級繼承:一個類繼承自單個基類,后者則繼承自另一個基類  
  6. 分層繼承:多個類繼承自單個基類  
  7. 混合繼承:兩種或多種類型繼承的混合 

6、什么是猴子補??? 

  1. 在運行期間動態(tài)修改一個類或模塊。  
  2. >>> class A:  
  3.     def func(self):  
  4.             print("Hi")  
  5. >>> def monkey(self):  
  6.         print "Hi, monkey"  
  7. >>> m.A.func = monkey  
  8. >>> a = m.A()  
  9. >>> a.func()  
  10. 運行結(jié)果為:  
  11. Hi, Monkey 

7、請解釋使用*args和**kwargs的含義 

  1. 在python中,*args和**kwargs通常使用在函數(shù)定義里。  
  2. *args 和 **kwargs 都允許你給函數(shù)傳不定數(shù)量的參數(shù),  
  3. 即使在定義函數(shù)的時候不知道調(diào)用者會傳遞幾個參數(shù)。  
  4. ps: *args和**kwargs只是一個大家都遵守的習慣,名字可以任意寫的 。  
  5. 1. *args例子  
  6. *args能夠接收不定量的非關(guān)鍵字參數(shù),會把位置參數(shù)轉(zhuǎn)化為tuple(非鍵值對的參數(shù)組),  
  7. 例子如下面代碼所示:  
  8. def func(*args):  
  9.     for i in args:  
  10.         print(i)  
  11. func(1,2,3,4)  
  12. 運行結(jié)果:  
  13.  
  14.  
  15.  
  16.  
  17. 2.**kwargs 例子  
  18. **kwargs允許你傳遞不定量個關(guān)鍵字參數(shù)。  
  19. 如果你需要在函數(shù)中定義不定量個命名參數(shù),那么你就要使用**kwargs了,  
  20. 它會把關(guān)鍵字參數(shù)轉(zhuǎn)化為dict(鍵值對參數(shù)組),例子如下面代碼所示:  
  21. def func(**kwargs):  
  22.     for i in kwargs:  
  23.         print(i,kwargs[i])  
  24. func(a=1,b=2,c=3,d=4 
  25. 運行結(jié)果:  
  26. a 1  
  27. b 2  
  28. c 3  
  29. d 4 

8、python中new和init的區(qū)別是什么?  

  1. __new__是一個靜態(tài)方法,而__init__是一個實例方法.   
  2. __new__方法會返回一個創(chuàng)建的實例,而__init__什么都不返回. 
  3.  
  4. 只有在__new__返回一個cls的實例時后面的__init__才能被調(diào)用.   
  5. 當創(chuàng)建一個新實例時調(diào)用__new__,初始化一個實例時用__init__. 

9、解釋一下Python中的三元運算 

  1. 不像C++,我們在Python中沒有?:,但我們有這個:  
  2. [on true] if [expression] else [on false]  
  3. 如果表達式為True,就執(zhí)行[on true]中的語句。否則,就執(zhí)行[on false]中的語句。  
  4. 下面是使用它的方法:  
  5. >>> a,b=2,3  
  6. >>> min=a if a<b else b  
  7. >>> min  
  8. 運行結(jié)果:  
  9.  
  10. >>> print("Hi") if a<b else print("Bye")  
  11. 運行結(jié)果:  
  12. Hi 

10、在Python中是如何管理內(nèi)存的? 

  1. Python有一個私有堆空間來保存所有的對象和數(shù)據(jù)結(jié)構(gòu)。作為開發(fā)者,我們無法訪問它,是解釋器在管理它。但是有了核心API后,我們可以訪問一些工具。Python內(nèi)存管理器控制內(nèi)存分配。  
  2. 另外,內(nèi)置垃圾回收器會回收使用所有的未使用內(nèi)存,所以使其適用于堆空間。  

 

責任編輯:龐桂玉 來源: 馬哥Linux運維
相關(guān)推薦

2009-08-18 10:30:32

2009-09-08 17:50:01

2009-09-24 15:16:04

CCNA網(wǎng)絡(luò)工程師面試

2009-09-21 15:27:17

2009-09-24 15:26:26

2010-08-12 16:42:11

網(wǎng)絡(luò)工程師

2020-07-22 14:50:35

Python數(shù)據(jù)分析

2018-01-24 20:59:46

阿里巴巴Python面試題

2010-08-10 13:22:41

2015-05-11 09:38:42

.NET高級工程師面試題

2018-04-04 09:35:01

前端JavaScript面試題

2018-04-16 12:38:37

大數(shù)據(jù)工程師面試

2020-11-03 16:42:46

容器Dockerfile技術(shù)

2020-11-25 09:27:49

Docker容器技術(shù)

2023-09-21 14:55:24

Web 開發(fā)TypeScript

2022-08-12 09:21:43

前端JavaScript代碼

2020-08-05 08:25:58

大數(shù)據(jù)Java技術(shù)

2018-03-02 09:10:51

2021-08-18 11:05:25

Linux工程師面試題

2010-05-10 13:40:22

CCIE思科認證
點贊
收藏

51CTO技術(shù)棧公眾號