吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

這里有份Python面試攻略,請簽收!

馬哥Linux運維 ? 來源:電子發燒友網 ? 作者:工程師譚軍 ? 2018-07-04 16:26 ? 次閱讀

千呼萬喚始出來,咱們需要的面試文檔終于整理出來啦!這一次,小編為大家送上的是python面試題之基礎概念篇。通過對十幾份面試題目的整理,我們選出了其中出現頻率最高的十個題目,附上答案供各位小伙伴參考!

1.*args和**kwargs是什么意思?

答:*args表示可變參數(variadicarguments),它允許你傳入0個或任意個無名參數,這些參數在函數調用時自動組裝為一個tuple; **kwargs表示關鍵字參數(keyword arguments),它允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝為一個dict。同時使用*args和**kwargs的時候,必須保證*args在**kwargs之前。

2.python里面如何拷貝一個對象?

答:

(1) 賦值(=),就是創建了對象的一個新的引用,修改其中任意一個變量都會影響到另一個;

(2)淺拷貝(copy.copy()),創建一個新的對象,但它包含的是對原始對象中包含項的引用(如果用引用的方式修改其中一個對象,另一個也會被改變);

(3)深拷貝(copy.deepcopy()),創建一個新的對象,并且遞歸的復制它所包含的對象(修改其中一個,另一個不會改變)

注意:并不是所有的對象都可以拷貝

3.簡要描述python的垃圾回收機制

答:python中的垃圾回收是以引用計數為主,標記-清除和分代收集為輔。

引用計數:python在內存中存儲每個對象的引用計數,如果計數變成0,該對象就會消失,分配給該對象的內存就會釋放出來。

標記-清除:一些容器對象,比如說list、dict、tuple、instance等可能會出現引用循環,對于這些循環,垃圾回收器會定時回收這些循環(對象之間通過引用(指針)連在一起,構成一個有向圖,對象構成這個有向圖的節點,而引用關系構成這個有向圖的邊)。

分代收集:python把內存根據對象存活時間劃分為三代,對象創建之后,垃圾回收器會分配它們所屬的代。每個對象都會被分配一個代,而被分配更年輕的代是被優先處理的,因此越晚創建的對象越容易被回收。

4.什么是lambda函數?它有什么好處?

答:lambda表達式,通常是在需要一個函數,但是又不想費神去命名一個函數的場合下使用,也就是指匿名函數。

Python允許你定義一種單行的小函數。定義lambda函數的形式如下(lambda參數:表達式)lambda函數默認返回表達式的值。你也可以將其賦值給一個變量。lambda函數可以接受任意個參數,包括可選參數,但是表達式只有一個。

5.python如何實現單例模式?

答:單例模式是一種常用的軟件設計模式。在它的核心結構中只包含一個被稱為單例類的特殊類。通過單例模式可以保證系統中一個類只有一個單例而且該單例易于外界訪問,從而方便對實例個數的控制并節約系統資源。如果希望在系統中某個類的對象只能存在一個,單例模式是最好的解決方案。

__new__()在__init__()之前被調用,用于生成實例對象。利用這個方法和累的屬性的特點可以實現設計模式的單例模式。單例模式是指創建唯一對象,單例模式設計的類只能實例。

1.使用__new__方法

class Singleton(object): def __new__(cls, *args, **kw): if not hasattr(cls, '_instance'): orig = super(Singleton, cls) cls._instance = orig.__new__(cls, *args, **kw) return cls._instanceclass MyClass(Singleton): a = 1

2.共享屬性

class Borg(object): _state = {} def __new__(cls, *args, **kw): ob = super(Borg, cls).__new__(cls, *args, **kw) ob.__dict__ = cls._state return obclass MyClass2(Borg): a = 1

3.裝飾器版本

def singleton(cls, *args, **kw): instances = {} def getinstance(): if cls not in instances: instances[cls] = cls(*args, **kw) return instances[cls] return getinstance@singletonclass MyClass: ...

4.import方法

class My_Singleton(object): def foo(self): passmy_singleton = My_Singleton()# to usefrom mysingleton import my_singletonmy_singleton.foo()

6.python自省

答:自省就是面向對象的語言所寫的程序在運行時,所能知道對象的類型,簡單一句就是運行時能夠獲得對象的類型,比如type(),dir(),getattr(),hasattr(),isinstance().

a = [1,2,3]b = {'a':1,'b':2,'c':3}c = Trueprint type(a),type(b),type(c) # print isinstance(a,list) # True

7.談一談python的裝飾器

答:裝飾器本質上是一個python函數,它可以讓其他函數在不作任何變動的情況下增加額外功能,裝飾器的返回值也是一個函數對象。它經常用于有切面需求的場景。比如:插入日志、性能測試,事務處理、緩存、權限驗證等。有了裝飾器我們就可以抽離出大量的與函數功能無關的雷同代碼進行重用。

8.什么是鴨子類型?

答:在鴨子類型中,關注的不是對象的類型本身,而是他如何使用的。例如,在不適用鴨子類型的語言中,我們可以編寫一個函數,它接受一個類型為鴨的對象,并調用它的走和叫方法。在使用鴨子類型的語言中,這樣的一個函數可以接受一個任意類型的對象,并調用它的走和叫方法。

class duck(): def walk(self): print('I am duck,I can walk...') def swim(self): print('I am duck,I can swim...') def call(self): print('I am duck,I can call...')duck1=duck()duck1.walk() # I am duck,I can walk...duck1.call() # I am duck,I can call...

9.@classmethod和@staticmethod

答:@classmethod修飾符對應的函數不需要實例化,不需要self參數,第一個參數需要是表示自身類的cls參數,cls參數可以用來調用類的屬性,類的方法,實例化對象等。@staticmethod返回函數的靜態方法,該方法不強制要求傳遞參數,如下聲明一個靜態方法:

Class C(object):

@staticmethod

Def f(arg1, arg2,…):

以上實例聲明了靜態方法f,類可以不用實例化就可以調用該方法C.f(),也可以實例化后調用C().f()。

10.談一談python中的元類

答:一般來說,我們都是在代碼里定義類,用定義的類來創建實例。而使用元類,步驟又是同,定義元類,用元類創建類,再使用創建出來的類來創建實例。元類的主要目的就是為了當創建類時能夠自動地改變類。

如果你在面試中也曾遇到過一些讓你“眼前一亮”的經典題目,或者,那些年你也有關于面試的難(cao)忘(dan)回憶,歡迎留言討論!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85037
  • Python編程語言

    關注

    1

    文章

    13

    瀏覽量

    4091

原文標題:Python面試攻略(嗨談篇)

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    程序員面試攻略第2版pdf

    程序員面試攻略介紹程序員在求職過程所面臨的求職溝通和程序設計技能兩個方面的問題。在程序設計技能方面,本書介紹了作為一名程序員必須具備的一些知識并以簡潔實用的方式介紹程序員的基本功。強調溝通方法是本書
    發表于 09-19 17:23

    這里有點好資料

    這里有以前下載的資料,前幾天碰到,看了看,很不錯。雖然與PROTEL板塊內容不太想干,但確實不錯,希望對大家有用。
    發表于 04-10 09:58

    職場要掌握面試的心理攻略

    職場要掌握面試的心理攻略,具體的攻略內容如下,僅供參考。 面試心理攻略 準備、準備再準備  你當然不會毫無準備地就去
    發表于 11-02 15:03

    這里有份很不錯的430的程序打包學習和學習視頻打包

    這里有份很不錯的430的程序打包學習和學習視頻打包很全的如果需要的可以留一個你郵件號我給你發過來哈
    發表于 08-06 12:22

    這里有OTT的完整設計方案嗎

    這里有OTT的完整設計方案嗎?
    發表于 01-10 20:36

    這里有什么電子元件

    這里有沒有單片機? 有沒有晶振
    發表于 10-05 16:38

    Python面試必看的10個問題

    找工作是每個學習Python人員的目標,為了更好的找到工作,刷面試題是必不可少的,了解最新企業招聘試題,可以讓你面試更加的順利。小編整理了一些2017年最新的Python
    發表于 02-28 17:00

    python庫之folium安裝和使用攻略

    Py之folium:python庫之folium的簡介、安裝、使用方法之詳細攻略
    發表于 12-28 10:24

    程序員面試攻略下載(PDF第二版)

    程序員面試攻略介紹程序員在求職過程所面臨的求職溝通和程序設計技能兩個方面的問題。在程序設計技
    發表于 09-19 17:22 ?0次下載

    互聯網公司Python的16道經典面試

    隨著Python在企業中的應用越來越多,崗位需求越來越大,面試成為了搞定優質職位的快速方式,下面是筆者面試10余家企業總結的面試題,希望對Pytho
    的頭像 發表于 03-16 09:29 ?8322次閱讀

    Python后端工程師面試經驗分享

    最近我也面試了不少童鞋,我發現能達到要求的真的少之又少,很多hr都說Python是最難招聘的崗位,我想是有道理的,這真的很值得我們去深思?
    的頭像 發表于 09-16 10:28 ?3282次閱讀

    Python工程師面試時需要準備什么

    隨著互聯網的發展,python語言現在變得越來越火爆,Python程序員越來越受到大家的青睞!那么想進入Python行業,面試時需要注意些什么問題呢?我們在參加
    的頭像 發表于 03-01 14:25 ?2284次閱讀

    Python最常見的面試題解答

    Python作為人工智能知識的基礎知識,加上有許多公司都在招python方面的程序員,那么小編在這里整理了一些Python最常見的面試題。在
    的頭像 發表于 05-12 10:26 ?3494次閱讀

    關于保險絲,這里有一些必知其實用的小常識

    關于保險絲,這里有一些必知其實用的小常識
    的頭像 發表于 07-02 11:40 ?6916次閱讀

    【供應鏈大轉型】芯片缺貨,如何提防假貨?這里有幾點忠告,記牢!

    【供應鏈大轉型】芯片缺貨,如何提防假貨?這里有幾點忠告,記牢!
    的頭像 發表于 12-07 10:34 ?490次閱讀
    【供應鏈大轉型】芯片缺貨,如何提防假貨?<b class='flag-5'>這里有</b>幾點忠告,<b class='flag-5'>請</b>記牢!
    百家乐官网稳赚秘籍| 郑州百家乐官网高手| 网上百家乐玩法| 百家乐官网平台在线| 百家乐大眼仔用法| 大发888资讯网007| 百家乐官网路单免费下载| 百家乐有电脑游戏吗| 棋牌娱乐| 澳门百家乐官网必赢技巧| 南宁百家乐的玩法技巧和规则| A8娱乐城官网| 喜达百家乐官网的玩法技巧和规则| 免邮百家乐布桌| 顶尖百家乐官网对单| 赌博百家乐弱点| 内丘县| 百家乐下载免费软件| 皇冠网现金网| 百家乐官网手机投注| 百家乐最好的投注方法| 武定县| 代理百家乐最多占成| 新建县| 百家乐游戏网址| 皇宝娱乐| 百家乐的路单怎样看| 宁河县| 百家乐出千方法技巧| 海立方百家乐官网赢钱| 百家乐旺门打法| 至尊百家乐官网年代| 德晋百家乐的玩法技巧和规则| 玩百家乐官网平台| 网上百家乐开户送现金| 百家乐官网接线玩法| 百家乐越长的路| 噢门百家乐官网玩的技巧| 威尼斯人娱乐网可信吗| 金字塔百家乐官网的玩法技巧和规则 | 长江百家乐的玩法技巧和规则|