色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取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

    文章

    3689

    瀏覽量

    95329
  • python
    +關注

    關注

    56

    文章

    4828

    瀏覽量

    86964
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    避雷!樹莓派初學者常犯的5錯誤

    如果你剛剛入手樹莓派,你就會知道它潛力無窮,幾乎能實現你想到的任何功能。然而,這種自由也讓你可能在不知不覺中做出對系統有害的操作。在本文中,我將介紹要避免哪些錯誤初學者最常犯的錯誤
    的頭像 發表于 07-22 17:16 ?161次閱讀
    避雷!樹莓派<b class='flag-5'>初學者</b>常犯的5<b class='flag-5'>個</b><b class='flag-5'>錯誤</b>!

    Thingy:91 X 為開發人員提供了一經過全球認證的、多傳感器、電池供電的蜂窩物聯網原型平臺

    Thingy:91 X 為開發人員提供了一經過全球認證的、多傳感器、電池供電的蜂窩物聯網原型平臺 挪威奧斯陸 – 2024年12月10日 – 全球領先的低功耗無線連接解決方案提供商Nordic
    的頭像 發表于 05-08 17:41 ?1118次閱讀

    第二代AMD Versal Premium系列SoC滿足各種CXL應用需求

    。無論您是高級自適應 SoC 開發人員,還是 CXL 初學者,第二代 Versal Premium 系列都能提供靈活的 CXL 3.1 子系統,非常適合內存擴展、內存池化和內存加速應用。
    的頭像 發表于 04-24 14:52 ?535次閱讀
    第二代AMD Versal Premium系列SoC滿足各種CXL應用需求

    NanoEdge AI Studio 面向STM32開發人員機器學習(ML)技術

    NanoEdge? AI Studio*(NanoEdgeAIStudio)是一種新型機器學習(ML)技術,可以讓終端用戶輕松享有真正的創新成果。只需幾步,開發人員便可基于最少量的數據為其項目創建
    的頭像 發表于 04-22 11:09 ?613次閱讀
    NanoEdge AI Studio 面向STM32<b class='flag-5'>開發人員</b>機器學習(ML)技術

    從單片機初學者邁向單片機工程師

    從單片機初學者邁向單片機工程師,對初學者非常適用。 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內容有幫助可以關注、點贊、評論支持一下哦~)
    發表于 04-15 14:06

    基于RV1126開發板的人員檢測算法開發

    在RV1126上開發人員檢測AI算法組件
    的頭像 發表于 04-14 13:56 ?328次閱讀
    基于RV1126<b class='flag-5'>開發</b>板的<b class='flag-5'>人員</b>檢測算法<b class='flag-5'>開發</b>

    linux初學者,用這樣的開發板合適嗎?

    這款是深圳市九鼎創展科技有限公司的全志A40I開發板,適合linux初學者嗎? 先用開發板調試,調試成功后,就可以單獨用核心板,再配合自己做的底板就可以做產品了。 做核心板還是難度太大了,
    發表于 04-10 11:11

    12V開關電源制作_適合初學者制作的TOP22X系列開關電源

    TOP22X系列雖然出來得比較早,但外圍簡單、高效,適合初學者制作。圖下面的是量產的真實數據。變壓器都是PC40材質。同樣適合100KHZ的其它芯片驅動的單端反激式開關電源 需要完整版資料可下載附件查看哦!
    發表于 04-02 14:39

    EE-269:以太網802.3初學者指南

    電子發燒友網站提供《EE-269:以太網802.3初學者指南.pdf》資料免費下載
    發表于 01-05 09:48 ?1次下載
    EE-269:以太網802.3<b class='flag-5'>初學者</b>指南

    【科普系列】LIN協議錯誤類型介紹

    了解 LIN總線的錯誤類型對于開發、測試均具有極大的好處。通過對錯誤類型的全面了解,開發人員可以提前預測和避免潛在的問題,增強系統的穩定性、容錯能力和安全性,從而提升系統整體的可靠性和
    的頭像 發表于 01-02 17:27 ?4113次閱讀
    【科普系列】LIN協議<b class='flag-5'>錯誤</b>類型介紹

    XD08M3232紅外感應單片機開發板適合初學者嗎?

    和可用性 在考慮是否適合初學者時,價格和可用性也是一重要因素。如果一開發板價格過高或者難以購買,那么它可能不適合初學者。根據搜索結果,X
    發表于 12-07 14:55

    MSPDebugStack開發人員指南

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

    對比Python與Java編程語言

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

    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
    主站蜘蛛池模板: 最新黄色在线 | 成人AV无码一二二区视频免费看 | 麻豆久久国产亚洲精品超碰热 | 色偷偷成人网免费视频男人的天堂 | 亚洲 自拍 偷拍 另类综合图区 | 多男同时插一个女人8p | 亚洲高清视频一区 | 亚洲AV色香蕉一区二区三区 | 在线观看免费精品国产 | 久久99国产精品无码AV | 大乳牛奶女在线观看 | 久久精品久久久 | 蝴蝶中文综合娱乐网2 | 亚洲 欧美 国产 综合久久 | ppypp午夜限制不卡影院私人 | 免费人成视频19674不收费 | 纯肉高H放荡受BL文库 | 丰满艳妇亲伦 | 91久久精品一区二区三区 | 欧美人成在线观看ccc36 | 蝴蝶中文综合娱乐网2 | 男人J进入女人P免费狂躁 | 男人和女人全黄一级毛片 | 97国产成人精品免费视频 | 少妇系列之白嫩人妻 | 肉动漫h黄动漫日本免费观看 | 国产精品1卡二卡三卡四卡乱码 | 久久99r66热这里只有精品 | 亞洲人妻AV無碼在線視頻 | 无止侵犯高H1V3无止侵犯 | 最近中文字幕在线看免费完整版 | 超嫩校花被灌醉在线观看 | 乌克兰粉嫩摘花第一次 | 国产午夜婷婷精品无码A片 国产午夜视频在永久在线观看 | MMM日本兽交 | 女神被调教成了精盆 | 中文字幕免费视频精品一 | 狠狠色狠狠色狠狠五月ady | 久久艹影院 | 夜色88V精品国产亚洲AV | 最近最新中文字幕MV高清在线 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品