18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

初學(xué)者開發(fā)人員都會犯的7個(gè)Python錯(cuò)誤

如意 ? 來源:百家號 ? 作者: Victer情報(bào)局 ? 2020-06-23 15:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這篇文章主要介紹了七個(gè)初學(xué)者常犯的Python調(diào)試錯(cuò)誤,并告訴大家如何去避免這些錯(cuò)誤。

1.具有副作用的功能

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

初學(xué)者開發(fā)人員都會犯的7個(gè)Python錯(cuò)誤

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

這可能會導(dǎo)致一些非常令人討厭的意外情況和浪費(fèi)我們的時(shí)間去調(diào)試。 請及時(shí)提防這些錯(cuò)誤,減少麻煩。

2.默認(rèn)參數(shù)中的函數(shù)調(diào)用

默認(rèn)參數(shù)有時(shí)很難使用。 看一下以下內(nèi)容。

初學(xué)者開發(fā)人員都會犯的7個(gè)Python錯(cuò)誤

為什么每次調(diào)用的返回值都一樣? 原因是在定義函數(shù)時(shí),Python會在默認(rèn)參數(shù)中計(jì)算表達(dá)式。 如果要?jiǎng)討B(tài)生成默認(rèn)參數(shù),則可以執(zhí)行以下操作。

初學(xué)者開發(fā)人員都會犯的7個(gè)Python錯(cuò)誤

3.可變的默認(rèn)參數(shù)

此問題是以上兩個(gè)的結(jié)合。 您是否遇到過以下情況?

初學(xué)者開發(fā)人員都會犯的7個(gè)Python錯(cuò)誤

這里發(fā)生兩件事。

1.定義函數(shù)后,Python會對表達(dá)式[[]求值。 (這相當(dāng)于調(diào)用list()。)

該對象的引用綁定到參數(shù)。 因此,無論何時(shí)調(diào)用該函數(shù),都將使用相同的對象。

2.因此,使用可變對象作為默認(rèn)參數(shù)不是一個(gè)好主意。 你絕對不應(yīng)該那樣做。

4. 參考覆蓋

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

初學(xué)者開發(fā)人員都會犯的7個(gè)Python錯(cuò)誤

當(dāng)執(zhí)行b = a時(shí),實(shí)際上存儲了a的引用。 因此,a和b指向同一對象。 要解決此問題,您應(yīng)該使用內(nèi)置的Deepcopy功能。 這將所有值類型的屬性遞歸復(fù)制到新變量中。

初學(xué)者開發(fā)人員都會犯的7個(gè)Python錯(cuò)誤

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

5.從東西導(dǎo)入*

我知道,我們都做到了這一點(diǎn)。 這有幾個(gè)缺點(diǎn)。

首先,不同名稱空間中的函數(shù)可以具有相同的名稱,從而導(dǎo)致整個(gè)代碼庫混亂。

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

初學(xué)者開發(fā)人員都會犯的7個(gè)Python錯(cuò)誤

than

初學(xué)者開發(fā)人員都會犯的7個(gè)Python錯(cuò)誤

6.使用字符串串聯(lián)連接路徑

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

初學(xué)者開發(fā)人員都會犯的7個(gè)Python錯(cuò)誤

那你做錯(cuò)了。 例如,這在Windows上將不起作用。 您可能沒有經(jīng)驗(yàn),但是使用不同開發(fā)設(shè)置的你的同事肯定會感到痛苦。

為了解決這個(gè)問題,您應(yīng)該使用Python的內(nèi)置工具pathlib或簡單地使用os.path.join函數(shù):

初學(xué)者開發(fā)人員都會犯的7個(gè)Python錯(cuò)誤

7. 測試覆蓋率低

這是一個(gè)高水平的問題。 尤其是當(dāng)您是初學(xué)者時(shí),單元測試的好處尚不清楚。 但是,每個(gè)經(jīng)驗(yàn)豐富的開發(fā)人員都可以告訴您,這是絕對必要的。 使用未經(jīng)測試的代碼就像打個(gè)模子:修復(fù)一個(gè)錯(cuò)誤,引入另一個(gè)錯(cuò)誤。

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

應(yīng)該認(rèn)真投入時(shí)間來測試您的代碼。 這樣做可能需要一些時(shí)間,但這是一項(xiàng)長期投資。 您將節(jié)省更多的調(diào)試時(shí)間。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    89

    文章

    3704

    瀏覽量

    96414
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4849

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Pico Technology發(fā)布Python軟件包pyPicoSDK

    現(xiàn)有 PicoSDK 的基礎(chǔ)上構(gòu)建,使工程師、開發(fā)人員和業(yè)余愛好者能夠創(chuàng)建 Python 腳本,更加快速方便地控制其 PicoScope 設(shè)備。
    的頭像 發(fā)表于 09-29 15:03 ?457次閱讀

    初學(xué)者指南:樹莓派上搭建虛擬環(huán)境!

    在這篇簡明扼要的指南中,我們將探討如何在樹莓派上設(shè)置和使用虛擬環(huán)境(或稱為Venv)——包括在終端和Thonny集成開發(fā)環(huán)境中。使用Bookworm操作系統(tǒng)或更高版本時(shí),或在嘗試安裝Python
    的頭像 發(fā)表于 07-27 13:24 ?495次閱讀
    <b class='flag-5'>初學(xué)者</b>指南:樹莓派上搭建虛擬環(huán)境!

    避雷!樹莓派初學(xué)者常犯的5個(gè)錯(cuò)誤!

    如果你剛剛?cè)胧謽漭?,你就會知道它潛力無窮,幾乎能實(shí)現(xiàn)你想到的任何功能。然而,這種自由也讓你可能在不知不覺中做出對系統(tǒng)有害的操作。在本文中,我將介紹要避免哪些錯(cuò)誤。初學(xué)者最常犯的錯(cuò)誤
    的頭像 發(fā)表于 07-22 17:16 ?542次閱讀
    避雷!樹莓派<b class='flag-5'>初學(xué)者</b>常犯的5<b class='flag-5'>個(gè)</b><b class='flag-5'>錯(cuò)誤</b>!

    Thingy:91 X 為開發(fā)人員提供了一個(gè)經(jīng)過全球認(rèn)證的、多傳感器、電池供電的蜂窩物聯(lián)網(wǎng)原型平臺

    Thingy:91 X 為開發(fā)人員提供了一個(gè)經(jīng)過全球認(rèn)證的、多傳感器、電池供電的蜂窩物聯(lián)網(wǎng)原型平臺 挪威奧斯陸 – 2024年12月10日 – 全球領(lǐng)先的低功耗無線連接解決方案提供商N(yùn)ordic
    的頭像 發(fā)表于 05-08 17:41 ?1979次閱讀

    第二代AMD Versal Premium系列SoC滿足各種CXL應(yīng)用需求

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

    NanoEdge AI Studio 面向STM32開發(fā)人員機(jī)器學(xué)習(xí)(ML)技術(shù)

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

    從單片機(jī)初學(xué)者邁向單片機(jī)工程師

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

    基于RV1126開發(fā)板的人員檢測算法開發(fā)

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

    linux初學(xué)者,用這樣的開發(fā)板合適嗎?

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

    12V開關(guān)電源制作_適合初學(xué)者制作的TOP22X系列開關(guān)電源

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

    EE-269:以太網(wǎng)802.3初學(xué)者指南

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

    【科普系列】LIN協(xié)議錯(cuò)誤類型介紹

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

    XD08M3232紅外感應(yīng)單片機(jī)開發(fā)板適合初學(xué)者嗎?

    和可用性 在考慮是否適合初學(xué)者時(shí),價(jià)格和可用性也是一個(gè)重要因素。如果一個(gè)開發(fā)板價(jià)格過高或者難以購買,那么它可能不適合初學(xué)者。根據(jù)搜索結(jié)果,X
    發(fā)表于 12-07 14:55

    MSPDebugStack開發(fā)人員指南

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

    對比Python與Java編程語言

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