国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

5個(gè)很好的Python面試題問題答案及分析

2020-02-22 22:54:52
字體:
供稿:網(wǎng)友

本文的主要內(nèi)容是向大家分享幾個(gè)Python面試中的T題目,同時(shí)給出了答案并對其進(jìn)行分析,具體如下。

本文的原文是5 Great Python Interview Questions,同時(shí)謝謝 @非烏龜 指出我的疏漏,沒有來源標(biāo)記,也贊其細(xì)心,希望看文章的同時(shí)大家都能看下原文,因?yàn)槊總€(gè)人的理解不一致,原汁原味的最有幫助,我翻譯很多文章的目的一是為了自己以后找資料方便;二是作為一個(gè)索引,以后再看原文的時(shí)候,能更加快捷。其目的還是希望大家能看原文的。

問題一:以下的代碼的輸出將是什么? 說出你的答案并解釋。

class Parent(object): x = 1class Child1(Parent): passclass Child2(Parent): passprint Parent.x, Child1.x, Child2.xChild1.x = 2print Parent.x, Child1.x, Child2.xParent.x = 3print Parent.x, Child1.x, Child2.x

答案

以上代碼的輸出是:

1 1 11 2 13 2 3

使你困惑或是驚奇的是關(guān)于最后一行的輸出是 3 2 3 而不是 3 2 1。為什么改變了 Parent.x 的值還會改變 Child2.x的值,但是同時(shí) Child1.x 值卻沒有改變?

這個(gè)答案的關(guān)鍵是,在 Python 中,類變量在內(nèi)部是作為字典處理的。如果一個(gè)變量的名字沒有在當(dāng)前類的字典中發(fā)現(xiàn),將搜索祖先類(比如父類)直到被引用的變量名被找到(如果這個(gè)被引用的變量名既沒有在自己所在的類又沒有在祖先類中找到,會引發(fā)一個(gè) AttributeError 異常 )。

因此,在父類中設(shè)置 x = 1 會使得類變量 X 在引用該類和其任何子類中的值為 1。這就是因?yàn)榈谝粋€(gè) print 語句的輸出是1 1 1。

隨后,如果任何它的子類重寫了該值(例如,我們執(zhí)行語句 Child1.x = 2),然后,該值僅僅在子類中被改變。這就是為什么第二個(gè) print 語句的輸出是 1 2 1。

最后,如果該值在父類中被改變(例如,我們執(zhí)行語句 Parent.x = 3),這個(gè)改變會影響到任何未重寫該值的子類當(dāng)中的值(在這個(gè)示例中被影響的子類是 Child2)。這就是為什么第三個(gè) print 輸出是 3 2 3。

問題二:以下的代碼的輸出將是什么? 說出你的答案并解釋?

def div1(x,y): print("%s/%s = %s" % (x, y, x/y))def div2(x,y): print("%s//%s = %s" % (x, y, x//y))div1(5,2)div1(5.,2)div2(5,2)div2(5.,2.)

答案

這個(gè)答案實(shí)際依賴于你使用的是 Python 2 還是 Python 3。

在 Python 3 中,期望的輸出是:

5/2 = 2.55.0/2 = 2.55//2 = 25.0//2.0 = 2.0

在 Python 2 中,盡管如此,以上代碼的輸出將是:

5/2 = 25.0/2 = 2.55//2 = 25.0//2.0 = 2.0

默認(rèn),如果兩個(gè)操作數(shù)都是整數(shù),Python 2 自動執(zhí)行整型計(jì)算。結(jié)果,5/2 值為 2,然而 5./2 值為 ```2.5``。

注意,盡管如此,你可以在 Python 2 中重載這一行為(比如達(dá)到你想在 Python 3 中的同樣結(jié)果),通過添加以下導(dǎo)入:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武安市| 盱眙县| 宜良县| 荆州市| 白银市| 正宁县| 金寨县| 响水县| 克什克腾旗| 高尔夫| 建始县| 济南市| 东阳市| 平顺县| 吉隆县| 休宁县| 景东| 饶平县| 左云县| 乌兰察布市| 志丹县| 禹城市| 贡嘎县| 承德县| 洛宁县| 光山县| 阳春市| 綦江县| 郁南县| 嫩江县| 左权县| 佛山市| 麦盖提县| 紫云| 桃江县| 昌图县| 勃利县| 田东县| 鄯善县| 潞城市| 格尔木市|