Python 面試題(待更新...)

一件舵、Python中單下劃線和雙下劃線的區(qū)別

1秀姐、_xxx 不能用于’from module import *’ 以單下劃線開頭的表示的是protected類型的變量养泡。即保護類型只能允許其本身與子類進行訪問埂奈。

2迄损、__xxx 雙下劃線的表示的是私有類型的變量。只能是允許這個類本身進行訪問了账磺。連子類也不可以

3芹敌、__xxx___ 定義的是特列方法。像__init__之類的

二垮抗、類變量 和 實例變量

1氏捞、類變量可以使用className.類變量和self.類變量兩種方式訪問。
2冒版、如果使用self.類變量的方式訪問并重新賦值后液茎,這個變量就會成為實例變量和self綁定,實際上就變成了一個實例變量,實例變量會屏蔽掉類變量的值捆等。
3滞造、類變量是共享的,最好使用類名的方式來訪問類變量栋烤。
4谒养、類變量通過sel訪問時,就會被轉化成實力變量明郭,被綁定到特定的實例上买窟。
5、實例變量(self)的形式對類變量重新賦值后薯定,類變量的值不會隨之變化蔑祟。
6、實例變量對每一個對象是不可見的沉唠,每一個對象擁有著可能不同的值疆虚。

三、newinit的區(qū)別

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

四满葛、單例模式

使用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._instance
 
class MyClass(Singleton):
    a = 1

共享屬性
創(chuàng)建實例時把所有實例的dict指向同一個字典,這樣它們具有相同的屬性和方法.

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

裝飾器版本

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

import方法

# mysingleton.py
class My_Singleton(object):
    def foo(self):
        pass
 
my_singleton = My_Singleton()
 
# to use
from mysingleton import my_singleton
 
my_singleton.foo() 
    

五径簿、copy, deepcopy()

賦值(=),就是創(chuàng)建了對象的一個新的引用嘀韧,修改其中任意一個變量都會影響到另一個篇亭。
淺拷貝:創(chuàng)建一個新的對象,但它包含的是對原始對象中包含項的引用(如果用引用的方式修改其中一個對象锄贷,另外一個也會修改改變){
1,完全切片方法译蒂;
2,工廠函數(shù),如list()谊却;
3,copy模塊的copy()函數(shù)
}

深拷貝:創(chuàng)建一個新的對象柔昼,并且遞歸的復制它所包含的對象(修改其中一個,另外一個不會改變){copy模塊的deep.deepcopy()函數(shù)}

import copy
a = [1, 2, 3, 4, ['a', 'b']]  #原始對象
 
b = a  #賦值炎辨,傳對象的引用
c = copy.copy(a)  #對象拷貝捕透,淺拷貝
d = copy.deepcopy(a)  #對象拷貝,深拷貝
 
a.append(5)  #修改對象a
a[4].append('c')  #修改對象a中的['a', 'b']數(shù)組對象
 
print 'a = ', a
print 'b = ', b
print 'c = ', c
print 'd = ', d
 
輸出結果:
a =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c =  [1, 2, 3, 4, ['a', 'b', 'c']]
d =  [1, 2, 3, 4, ['a', 'b']]

六碴萧、Python垃圾回收機制

Python GC主要使用引用計數(shù)(reference counting)來跟蹤和回收垃圾乙嘀。在引用計數(shù)的基礎上,通過“標記-清除”(mark and sweep)解決容器對象可能產生的循環(huán)引用問題破喻,通過“分代回收”(generation collection)以空間換時間的方法提高垃圾回收效率虎谢。

七、關于 is 與 ==

is是對比地址,==是對比值

八曹质、如何在一個function里面設置一個全局的變量

#解決方法是在function的開始插入一個global聲明:
def f()
    global x

九婴噩、單引號擎场,雙引號,三引號的區(qū)別

答:單引號和雙引號是等效的讳推,如果要換行顶籽,需要符號(\),三引號則可以直接換行玩般,并且可以包含注釋

如果要表示Let’s go 這個字符串

單引號:s4 = ‘Let\’s go’

雙引號:s5 = “Let’s go”

s6 = ‘I realy like“python”!’

"""
這里的東西不會被轉義
"""


這就是單引號和雙引號都可以表示字符串的原因了

十银觅、匿名函數(shù)

def multipliers():
    return [lambda x : i * x for i in range(4)]
 
print [m(2) for m in multipliers()]

輸出 [6, 6, 6, 6]

十一、隊列

Queue.Queue()對多線程是安全的,對多進程是非進程安全的
multiprocessing.Queue()對多進程是安全的

十二坏为、logging

logging 是線程安全的, 但是非多進程安全
可使用ConcurrentLogHandler,自動創(chuàng)建一個.lock文件究驴,通過鎖的方式來安全的寫日志文件

十三、IO密集型任務匀伏、計算密集型任務

多線程適合IO密集型任務
多進程適合計算密集型任務

十四洒忧、高并發(fā)解決方案

https://www.google.com/search?q=python高并發(fā)解決方案
twisted->tornado->gevent,能扯到golang,erlang更好

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末够颠,一起剝皮案震驚了整個濱河市熙侍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌履磨,老刑警劉巖蛉抓,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剃诅,居然都是意外死亡巷送,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門矛辕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笑跛,“玉大人,你說我怎么就攤上這事聊品》甚澹” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵翻屈,是天一觀的道長晤柄。 經常有香客問我,道長妖胀,這世上最難降的妖魔是什么芥颈? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮赚抡,結果婚禮上爬坑,老公的妹妹穿的比我還像新娘。我一直安慰自己涂臣,他們只是感情好盾计,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布售担。 她就那樣靜靜地躺著,像睡著了一般署辉。 火紅的嫁衣襯著肌膚如雪族铆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天哭尝,我揣著相機與錄音哥攘,去河邊找鬼。 笑死材鹦,一個胖子當著我的面吹牛逝淹,可吹牛的內容都是我干的。 我是一名探鬼主播桶唐,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼栅葡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尤泽?” 一聲冷哼從身側響起欣簇,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎坯约,沒想到半個月后熊咽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡鬼店,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年网棍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妇智。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡滥玷,死狀恐怖,靈堂內的尸體忽然破棺而出巍棱,到底是詐尸還是另有隱情惑畴,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布航徙,位于F島的核電站如贷,受9級特大地震影響,放射性物質發(fā)生泄漏到踏。R本人自食惡果不足惜杠袱,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窝稿。 院中可真熱鬧楣富,春花似錦、人聲如沸伴榔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至塘安,卻和暖如春糠涛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兼犯。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工忍捡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人免都。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓锉罐,卻偏偏與公主長得像帆竹,于是被迫代替她去往敵國和親绕娘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內容