久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

本文由馬哥教育Python自動化實戰班3期學員推薦,轉載自簡書,作者為Manjusaka,內容略經小編改編和加工,觀點跟作者無關,最后感謝作者的辛苦貢獻與付出。

Python在設計上堅持了清晰劃一的風格,這使得Python成為一門易讀、易維護,并且被大量用戶所歡迎的、用途廣泛的語言。設計者開發時總的指導思想是,對于一個特定的問題,只要有一種最好的方法來解決就好了。

最近覺得 Python 太“簡單了”,于是在老司機面前放肆了一把:“我覺得 Python 是世界上最簡單的語言!”。于是老司機給我了一份滿分 100 分的6道題,下面是題目的錯誤實錄:

1.你恐怕不會留意的列表生成器


檢查一下下面的代碼會報錯的原因,并說出來?

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

列表生成器的正解答案如下:

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

或者答案可以是這樣

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

此內容的再補充

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

2.據說是最難的裝飾器


描述:按照實際情況來寫一個類裝飾器用來度量函數/方法運行時間,你看怎么實現?

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

此類裝飾器能夠運行在普通函數上:

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

此類裝飾器運行在方法上會報錯,為什么?

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

如果堅持使用類裝飾器,應該如何修改?

此問題的答案是

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

3.Python 調用機制看你會不會


描述:Python開發者們知道?__call__?方法可以用來重載圓括號調用,其實問題根本不是這個。

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

現在大家可以看到?a()?似乎等價于?a.__call__()?,好的,現在我們寫出了如下的代碼

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

4.描述符你會犯錯嗎?


描述:如果要寫一個 Exam 類,其屬性 math 為 [0,100] 的整數,若賦值時不在此范圍內則拋出異常,你是否決定用描述符來實現這個需求。

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

看起來一切正常。不過嘗試說明是什么問題,改寫 Grade 描述符試一下:

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

不過這樣會導致更大的問題,請問該怎么解決這個問題?

答案

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

兩種方法

第一種:

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

5.Python 繼承機制的坑


描述

試求出以下代碼的輸出結果。

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

答案:輸出是 36 ,具體可以參考?New-style Classes?,?multiple-inheritance

6. Python 特殊方法的使用模式


描述:寫了一個通過重載?new?方法來實現單例模式的類。

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

現在有一堆類要實現為單例模式,打算照著寫一個元類,這樣可以讓代碼復用:

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

報錯啊,下面這段代碼能夠捕獲一切屬性調用并打印參數

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

試解釋為什么給?getattribute?打補丁成功,而?new?打補丁失敗。
如果堅持使用元類給?new?打補丁來實現單例模式,應該怎么修改?

答案

其實這是最氣人的一點,類里的?__new__?是一個?staticmethod?因此替換的時候必須以?staticmethod?進行替換。答案如下:

千萬不要覺得你會Python了,80%的人看完這6道題都傻眼了

結語


Python這門語言還是博大精深的,如果你現在剛剛學不久就以為很好了,小心這里面其實有很多坑。

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 兰溪市| 井冈山市| 汾阳市| 三门峡市| 集贤县| 手游| 郑州市| 平果县| 中阳县| 桑植县| 天柱县| 中宁县| 镇康县| 禄丰县| 额尔古纳市| 德兴市| 台前县| 胶南市| 杭州市| 龙川县| 林州市| 安仁县| 秦皇岛市| 长宁区| 广河县| 阳东县| 馆陶县| 商河县| 双牌县| 英山县| 泰宁县| 青川县| 赤城县| 隆化县| 开鲁县| 孝义市| 盐亭县| 贵港市| 齐齐哈尔市| 昌吉市| 渑池县|