精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

初學者開發人員都會犯的7個Python錯誤

如意 ? 來源:百家號 ? 作者: Victer情報局 ? 2020-06-23 15:19 ? 次閱讀

這篇文章主要介紹了七個初學者常犯的Python調試錯誤,并告訴大家如何去避免這些錯誤。

1.具有副作用的功能

由于Python不是像Haskell這樣的純函數式語言,因此會產生副作用。 嚴格來說,這不是一個錯誤,但是很容易無意間手忙腳亂。 下面的示例演示了該問題。

初學者開發人員都會犯的7個Python錯誤

在Python中,對象是引用類型。 因此,當您將列表作為參數傳遞時,將傳遞引用而不是值。 這意味著,如果您在函數中更改它們,則更改將反映在外部。

這可能會導致一些非常令人討厭的意外情況和浪費我們的時間去調試。 請及時提防這些錯誤,減少麻煩。

2.默認參數中的函數調用

默認參數有時很難使用。 看一下以下內容。

初學者開發人員都會犯的7個Python錯誤

為什么每次調用的返回值都一樣? 原因是在定義函數時,Python會在默認參數中計算表達式。 如果要動態生成默認參數,則可以執行以下操作。

初學者開發人員都會犯的7個Python錯誤

3.可變的默認參數

此問題是以上兩個的結合。 您是否遇到過以下情況?

初學者開發人員都會犯的7個Python錯誤

這里發生兩件事。

1.定義函數后,Python會對表達式[[]求值。 (這相當于調用list()。)

該對象的引用綁定到參數。 因此,無論何時調用該函數,都將使用相同的對象。

2.因此,使用可變對象作為默認參數不是一個好主意。 你絕對不應該那樣做。

4. 參考覆蓋

如我們所見,每個對象都是Python中的引用類型。 除了將它們傳遞給函數之外,這還可能引起一些混亂。 請參見以下示例:

初學者開發人員都會犯的7個Python錯誤

當執行b = a時,實際上存儲了a的引用。 因此,a和b指向同一對象。 要解決此問題,您應該使用內置的Deepcopy功能。 這將所有值類型的屬性遞歸復制到新變量中。

初學者開發人員都會犯的7個Python錯誤

如果使用整數而不是list嘗試相同的操作,則所有操作的行為都將與您期望的一樣。 原因是整數類型是不可變的,因此在更改它們時會覆蓋引用。

5.從東西導入*

我知道,我們都做到了這一點。 這有幾個缺點。

首先,不同名稱空間中的函數可以具有相同的名稱,從而導致整個代碼庫混亂。

其次,當您在Python中導入模塊時,該模塊中的所有代碼都將被執行。 如果有很多子模塊要導入,這會大大降低速度。 因此,如果僅導入NumPy以生成隨機數,則最好使用下面方法:

初學者開發人員都會犯的7個Python錯誤

than

初學者開發人員都會犯的7個Python錯誤

6.使用字符串串聯連接路徑

假設您必須從變量data_folder給定的文件夾中打開一個名為data.csv的文件。 應該如何確定文件路徑? 如果你在做:

初學者開發人員都會犯的7個Python錯誤

那你做錯了。 例如,這在Windows上將不起作用。 您可能沒有經驗,但是使用不同開發設置的你的同事肯定會感到痛苦。

為了解決這個問題,您應該使用Python的內置工具pathlib或簡單地使用os.path.join函數:

初學者開發人員都會犯的7個Python錯誤

7. 測試覆蓋率低

這是一個高水平的問題。 尤其是當您是初學者時,單元測試的好處尚不清楚。 但是,每個經驗豐富的開發人員都可以告訴您,這是絕對必要的。 使用未經測試的代碼就像打個模子:修復一個錯誤,引入另一個錯誤。

為了避免這些錯誤,從項目的開始就應該注意。 添加功能(甚至功能)后,應立即編寫測試用例以驗證能否跑通。 有很多很棒的庫,例如內置的unittest或非常流行的pytest。

應該認真投入時間來測試您的代碼。 這樣做可能需要一些時間,但這是一項長期投資。 您將節省更多的調試時間。

簡而言之,這是您在Python中可能犯的七個最痛苦的錯誤。 在追求Python熟練度的過程中,您肯定還會遇到更多。 但是,有了本指南,您將有知識來避免這些出現最頻繁的錯誤。

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

    關注

    88

    文章

    3592

    瀏覽量

    93596
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84453
收藏 人收藏

    評論

    相關推薦

    對比Python與Java編程語言

    Python與Java都是目前非常流行的編程語言,它們各有其獨特的優勢和適用場景。以下是對這兩種編程語言的對比: 一、語法和易用性 Python 語法簡潔,代碼更易讀,非常適合初學者。 動態類型系統
    的頭像 發表于 11-15 09:31 ?217次閱讀

    C2000 ePWM開發人員指南

    電子發燒友網站提供《C2000 ePWM開發人員指南.pdf》資料免費下載
    發表于 09-07 09:45 ?0次下載
    C2000 ePWM<b class='flag-5'>開發人員</b>指南

    我用的是multisim14.0,因為是初學者,仿真電路的時候找不到合適的模型,應該怎么辦?

    我用的是multisim14.0,因為是初學者,仿真電路的時候找不到合適的模型,應該怎么辦? 比如我電路用的是AO3400的NMOS,但是在multisim14.0軟件自帶的元件庫里面沒找到類似的,開啟電壓是1.5v的nmos,請教大家,應該怎么辦?
    發表于 08-23 10:59

    如何在Python開發人工智能

    Python開發人工智能(AI)是一廣泛而深入的主題,它涵蓋了從基礎的數據處理到復雜的機器學習、深度學習以及自然語言處理等多個領域。
    的頭像 發表于 07-15 15:01 ?1897次閱讀

    適合初學者的嵌入式項目有哪些?

    適合初學者的嵌入式項目有哪些? 嵌入式學習是一實踐性很強的領域,通過實際項目可以幫助你鞏固理論知識并提升技能。以下是幾個適合初學者練手的嵌入式項目,每個項目都涵蓋了從硬件到軟件的不同層面
    發表于 07-11 10:23

    鴻蒙ArkUI-X跨平臺技術:【開發準備】

    本文檔適用于ArkUI跨平臺應用開發初學者。通過開發環境搭建、應用工程創建、編譯和運行,熟悉ArkUI跨平臺應用開發基本流程。
    的頭像 發表于 05-24 10:40 ?431次閱讀
    鴻蒙ArkUI-X跨平臺技術:【<b class='flag-5'>開發</b>準備】

    三星停止自動駕駛研究,開發人員轉到機器人領域

    近日,三星電子宣布了一項重要的研發戰略調整。據業內人士透露,三星先進技術研究院(SAIT)已決定停止自動駕駛汽車的研究,并將這一領域的開發人員轉移到機器人領域。
    的頭像 發表于 05-13 09:21 ?418次閱讀

    國內哪家的FPGA適合初學者

    如題,想著手學習FPGA的話,國內哪家的比較好,更適合初學者學習?這方面的經驗,是一點都沒。
    發表于 04-14 19:17

    初學者請問各位大佬

    為什么在89C51單片機中R1可以提供低地址 在外部擴展RAM中不是P0口提供低8位地址P2口提供高8位地址嗎初學者有些不理解望各位大佬解答一下謝謝
    發表于 02-23 16:39

    請問初學者要怎么快速掌握FPGA的學習方法?

    對于初學者 FPGA的編程語言是什么? FPGA芯片的基礎結構也不了解. FPGA開發工具的名稱和使用方法都不知道. 要學的很多啊,請問有什么自學的學習方法么?
    發表于 01-02 23:01

    基于MicroPython的普中開發板攻略

    Python擁有眾多的編程器,如果你之前已經熟練掌握python或已經使用python開發,那么可以直接使用你原來習慣的開發軟件來編程。如果
    發表于 12-11 17:12 ?0次下載

    初學仿真常見的錯誤

    本推文針對Sentaurus初學者頻繁遇到的錯誤進行簡單整理,具體是包括Sde、Sdevice仿真常見錯誤。
    的頭像 發表于 12-03 16:24 ?2139次閱讀
    <b class='flag-5'>初學</b>仿真常見的<b class='flag-5'>錯誤</b>

    python運行指定幾行

    初學者。在本文中,我們將詳細介紹如何在Python中運行指定的幾行代碼。 首先,你需要具備一臺已經安裝了Python解釋器的計算機。Python有多個版本,我們推薦使用最新穩定版本的
    的頭像 發表于 11-29 15:04 ?926次閱讀

    python安裝后idle在哪兒

    Python 是一種非常流行的編程語言,它使用簡單且易于理解的語法,使得它成為初學者和專業開發人員的首選。Python 的安裝非常簡單,您只需在官方網站上下載適合您操作系統的安裝包,然
    的頭像 發表于 11-29 14:52 ?1154次閱讀

    python idle在哪里找到

    IDE,頗受初學者和小規模項目開發者的喜愛。 首先,讓我們來了解一下IDLE的歷史。IDLE是參考了早期的Smalltalk IDE而開發的,Smalltalk是一種面向對象編程語言。IDLE最早
    的頭像 發表于 11-29 14:39 ?1047次閱讀