python面試題(一)

Python是如何進行內(nèi)存管理的?

從三個方面來說秃症,一對象的引用計數(shù)機制琅锻,二垃圾回收機制粤策,三內(nèi)存池機制

  • Python內(nèi)部使用引用計數(shù)型奥,來保持追蹤內(nèi)存中的對象,所有對象都有引用計數(shù)

引用計數(shù)增加的情況

1.一個對象分配一個新名稱
2.將其放入一個容器中(如列表倍靡、元組或字典)

引用計數(shù)減少的情況

1.使用del語句對對象別名顯示的銷毀
2.引用超出作用域或被重新賦值

sys.getrefcount()函數(shù)可以獲得對象的當前引用計數(shù)猴伶。對于不可變數(shù)據(jù)(如數(shù)字或字符串),解釋器會在程序的不同部分共享內(nèi)存,節(jié)約內(nèi)存他挎。

  • 垃圾回收
    1.當一個對象的引用計數(shù)歸零時筝尾,它將被垃圾收集機制處理掉。
    2.當兩個對象a和b互相引用時办桨,del語句可以減少a筹淫、b的引用計數(shù),并銷毀用于底層對象的名稱呢撞。然而贸街,由于每個對象都包含一個對其他對象的引用,因此引用計數(shù)不會歸零狸相,對象也不會銷毀。從而導致內(nèi)存泄露捐川。為解決這一問題脓鹃,解釋器會定期執(zhí)行一個循環(huán)檢測器,搜索不可訪問對象的循環(huán)并刪除他們古沥。
  • 內(nèi)存池機制
    Python提供了對內(nèi)存的垃圾收集機制瘸右,但是它將不用的內(nèi)存放到內(nèi)存池而不是返回給操作系統(tǒng)。
    1.Pymalloc機制:為了加速Python的執(zhí)行效率岩齿,Python引入了一個內(nèi)存池機制太颤,用于管理對小塊內(nèi)存的申請和釋放。
    2.Python對所有小于256個字節(jié)的對象都使用pymalloc實現(xiàn)的分配器盹沈,而大的對象則使用系統(tǒng)的malloc龄章。
    3.對于Python對象,如整數(shù)乞封,浮點數(shù)和List做裙,都有獨立的私有內(nèi)存池,對象間不共享他們的內(nèi)存池肃晚。也就是說如果你分配又釋放了大量的整數(shù)锚贱,用于緩存這些整數(shù)的內(nèi)存就不能再分配給浮點數(shù)。

什么是lambda函數(shù)关串?

lambda表達式拧廊,通常是在需要一個函數(shù),但是不想費神去命名一個函數(shù)的場合下使用晋修,也就是指匿名函數(shù)吧碾。
lambda [arguments]:expression

寫出一段代碼實現(xiàn)刪除一個list里面的重復元素

1.使用set函數(shù)。set(list)
2.使用字典函數(shù)飞蚓。
a=[1,2,3,2,3,2,4,5,3,6] b={} b=b.fromkeys(a) c=list(b.keys()) c
</br>

用sort進行排序滤港,從最后一個元素開始判段

```
    a=[1,2,4,23,4,5,64,13,4,67,8]
    a.sort()
    last=a[-1]
    for i in range(len(a)-2,-1,-1):
        if last==a[i]:
            del a[i]
        else:
            last=a[i]
    print(a)
```

Python里面如何拷貝一個對象?(賦值、淺拷貝和深拷貝的區(qū)別)

賦值(=):創(chuàng)建了對象的一個新引用溅漾,修改其中任何一個變量都會影響到另一個
淺拷貝:創(chuàng)建一個新對象山叮,但它包含的是對原始對象中包含項的引用,如果用引用的方式修改其中一個添履,另一個也會改變屁倔。(完全切片方法、工廠函數(shù)list()暮胧、copy模塊的copy()函數(shù))
深拷貝:創(chuàng)建一個新的對象锐借,并且遞歸的復制它所包含的對象,修改其中一個往衷,另一個不會改變钞翔。(copy模塊的deep.deepcopy()函數(shù))

下面代碼會輸出什么?

```
    def f(x,l=[]):
        for in range(x):
        l.append(i*i)
        print l
    
    f(2)
    f(3,[3,2,1])
    f(3)
```
```
    [0,1]
    [3,2,1,0,1,4]
    [0,1,0,1,4]
```

這兩個參數(shù)是什么意思:*args,**kwargs 席舍?

如果我們不確定要往函數(shù)中傳入多少個參數(shù)布轿,或者我們想向函數(shù)中以列表和元組的形式傳參數(shù)時,那就要用*args.
如果我們不知道要往函數(shù)中傳入多少個關鍵字參數(shù)来颤,或者傳入字典的值作為關鍵字參數(shù)時汰扭,那就要使用**kwargs

單例模式

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

2.共享屬性
創(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 MyClass(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]
    
    @singleton
    class MyClass:
        ...

4.import方法
作為Python的模塊是天然的單例模式

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末萝毛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子滑黔,更是在濱河造成了極大的恐慌笆包,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件略荡,死亡現(xiàn)場離奇詭異色查,居然都是意外死亡,警方通過查閱死者的電腦和手機撞芍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門秧了,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人序无,你說我怎么就攤上這事验毡。” “怎么了帝嗡?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵晶通,是天一觀的道長。 經(jīng)常有香客問我哟玷,道長狮辽,這世上最難降的妖魔是什么一也? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮喉脖,結果婚禮上椰苟,老公的妹妹穿的比我還像新娘。我一直安慰自己树叽,他們只是感情好舆蝴,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著题诵,像睡著了一般洁仗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上性锭,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天赠潦,我揣著相機與錄音,去河邊找鬼草冈。 笑死祭椰,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的疲陕。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼钉赁,長吁一口氣:“原來是場噩夢啊……” “哼蹄殃!你這毒婦竟也來了?” 一聲冷哼從身側響起你踩,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤诅岩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后带膜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吩谦,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年膝藕,在試婚紗的時候發(fā)現(xiàn)自己被綠了式廷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡芭挽,死狀恐怖滑废,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情袜爪,我是刑警寧澤蠕趁,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站辛馆,受9級特大地震影響俺陋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一腊状、第九天 我趴在偏房一處隱蔽的房頂上張望诱咏。 院中可真熱鬧,春花似錦寿酌、人聲如沸胰苏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽硕并。三九已至,卻和暖如春秧荆,著一層夾襖步出監(jiān)牢的瞬間倔毙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工乙濒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留陕赃,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓颁股,卻偏偏與公主長得像么库,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子甘有,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • http://python.jobbole.com/85231/ 關于專業(yè)技能寫完項目接著寫寫一名3年工作經(jīng)驗的J...
    燕京博士閱讀 7,557評論 1 118
  • 所有知識點已整理成app app下載地址 J2EE 部分: 1.Switch能否用string做參數(shù)诉儒? 在 Jav...
    侯蛋蛋_閱讀 2,412評論 1 4
  • 熊志軍~【日精進打卡第523天】 10月19號卡 付達新商貿(mào)~眾德營銷 沈陽盛和塾道盛組/稻芽七組 【知~學習】 ...
    熊志軍閱讀 203評論 0 0
  • 娟子是家中長女。父母原本在個小縣城的農(nóng)村種地謀生亏掀,有一年忱反,恰巧市里有個營生,父母難得有此機會滤愕,將娟子就給爺爺奶奶温算,...
    清風明月7773閱讀 999評論 0 1
  • 文章來源于:Perfect smooth scrolling in UITableViews 南峰子的技術博客 手...
    月詠蝴蝶閱讀 1,097評論 0 1