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

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

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

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

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

如意 ? 來(lái)源:百家號(hào) ? 作者: Victer情報(bào)局 ? 2020-06-23 15:19 ? 次閱讀

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

1.具有副作用的功能

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4. 參考覆蓋

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

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

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

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

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

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

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

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

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

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

than

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

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

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

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

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

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

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

7. 測(cè)試覆蓋率低

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

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

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

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

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

    關(guān)注

    88

    文章

    3614

    瀏覽量

    93686
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4792

    瀏覽量

    84628
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    MSPDebugStack開發(fā)人員指南

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

    如何修正初學(xué)者使用加熱臺(tái)時(shí)最容易錯(cuò)誤,內(nèi)含新品偷跑【MINIWARE】

    行業(yè)資訊
    易迪賽智能科技
    發(fā)布于 :2024年11月27日 14:13:37

    C++新手容易的十個(gè)編程錯(cuò)誤

    簡(jiǎn)單的總結(jié)一下?C++ 新手容易的一些編程錯(cuò)誤,給新人們提供一個(gè)參考。 1 有些關(guān)鍵字在 cpp 文件中多寫了 對(duì)于 C++ 類,一些關(guān)鍵字只要寫在 .h 中就好,cpp 中就不用再加上了,比如
    的頭像 發(fā)表于 11-15 12:42 ?312次閱讀

    對(duì)比Python與Java編程語(yǔ)言

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

    C2000 ePWM開發(fā)人員指南

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

    我用的是multisim14.0,因?yàn)槭?b class='flag-5'>初學(xué)者,仿真電路的時(shí)候找不到合適的模型,應(yīng)該怎么辦?

    我用的是multisim14.0,因?yàn)槭?b class='flag-5'>初學(xué)者,仿真電路的時(shí)候找不到合適的模型,應(yīng)該怎么辦? 比如我電路用的是AO3400的NMOS,但是在multisim14.0軟件自帶的元件庫(kù)里面沒找到類似的,開啟電壓是1.5v的nmos,請(qǐng)教大家,應(yīng)該怎么辦?
    發(fā)表于 08-23 10:59

    如何在Python開發(fā)人工智能

    Python開發(fā)人工智能(AI)是一個(gè)廣泛而深入的主題,它涵蓋了從基礎(chǔ)的數(shù)據(jù)處理到復(fù)雜的機(jī)器學(xué)習(xí)、深度學(xué)習(xí)以及自然語(yǔ)言處理等多個(gè)領(lǐng)域。
    的頭像 發(fā)表于 07-15 15:01 ?2131次閱讀

    適合初學(xué)者的嵌入式項(xiàng)目有哪些?

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

    初學(xué)者必看:破解PCB設(shè)計(jì)常見錯(cuò)誤

    在新手開始PCB設(shè)計(jì)時(shí),通常將該過程視為簡(jiǎn)單的“連接點(diǎn)”:只要建立了連接,如何建立這些連接并不是特別重要。不幸的是,這與事實(shí)相去甚遠(yuǎn)。作為PCB設(shè)計(jì)工程師,尤其是隨著電子設(shè)備速度的不斷提高和排放標(biāo)準(zhǔn)的嚴(yán)格,我們需要關(guān)注PCB和互連的最復(fù)雜的細(xì)節(jié)。如果我們粗心大意,我們就有可能面臨信號(hào)完整性差和電磁兼容性差的風(fēng)險(xiǎn)。在過去的幾年里,我們遇到了相當(dāng)多的其他PCB設(shè)
    的頭像 發(fā)表于 06-21 18:22 ?1574次閱讀
    <b class='flag-5'>初學(xué)者</b>必看:破解PCB設(shè)計(jì)常見<b class='flag-5'>錯(cuò)誤</b>!

    鴻蒙ArkUI-X跨平臺(tái)技術(shù):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI跨平臺(tái)應(yīng)用開發(fā)初學(xué)者。通過開發(fā)環(huán)境搭建、應(yīng)用工程創(chuàng)建、編譯和運(yùn)行,熟悉ArkUI跨平臺(tái)應(yīng)用開發(fā)基本流程。
    的頭像 發(fā)表于 05-24 10:40 ?469次閱讀
    鴻蒙ArkUI-X跨平臺(tái)技術(shù):【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】

    三星停止自動(dòng)駕駛研究,開發(fā)人員轉(zhuǎn)到機(jī)器人領(lǐng)域

    近日,三星電子宣布了一項(xiàng)重要的研發(fā)戰(zhàn)略調(diào)整。據(jù)業(yè)內(nèi)人士透露,三星先進(jìn)技術(shù)研究院(SAIT)已決定停止自動(dòng)駕駛汽車的研究,并將這一領(lǐng)域的開發(fā)人員轉(zhuǎn)移到機(jī)器人領(lǐng)域。
    的頭像 發(fā)表于 05-13 09:21 ?434次閱讀

    國(guó)內(nèi)哪家的FPGA適合初學(xué)者

    如題,想著手學(xué)習(xí)FPGA的話,國(guó)內(nèi)哪家的比較好,更適合初學(xué)者學(xué)習(xí)?這方面的經(jīng)驗(yàn),是一點(diǎn)都沒。
    發(fā)表于 04-14 19:17

    初學(xué)者請(qǐng)問各位大佬

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

    請(qǐng)問初學(xué)者要怎么快速掌握FPGA的學(xué)習(xí)方法?

    對(duì)于初學(xué)者 FPGA的編程語(yǔ)言是什么? FPGA芯片的基礎(chǔ)結(jié)構(gòu)也不了解. FPGA開發(fā)工具的名稱和使用方法都不知道. 要學(xué)的很多啊,請(qǐng)問有什么自學(xué)的學(xué)習(xí)方法么?
    發(fā)表于 01-02 23:01
    主站蜘蛛池模板: 久久热在线视频精品| 午夜理论在线观看不卡大地影院| 伊人久久大香线蕉资源| 国产精品99久久久久久AV色戒 | 榴莲黄版无限刷| 亚洲色图在线观看视频| 国产女合集小岁9三部| 三色午夜秀| 成人免费在线观看| 欧美午夜精品一区区电影| 91交换论坛| 开心色99xxxx开心色| 亚洲视频在线观看不卡| 国精产品一区一区三区有限| 挺进老师的紧窄小肉六电影完整版| 成人手机在线| 日本不卡不码高清免费| bdsm中国精品调教ch| 暖暖 日本 视频 在线观看免费 | 俄罗斯19girl video9| 欧美一区二区在线观看| 99视频免费播放| 欧美大香线蕉线伊人久久| 99国产小视频| 欧美特级特黄AAAAA片| AV天堂午夜精品蜜臀AV| 欧美黑人巨大xxxxx| 99在线播放| 轻点灬大ji巴太粗太双性高h| gay吊粗大双龙| 青青app| 被窝伦理电影午夜| 日本中文一区| 嘟嘟嘟WWW免费高清在线中文| 三级黄色网| 国产精品涩涩涩视频网站| 午夜无码国产理论在线| 国产亚洲精品久久精品6| 亚洲精品国产精品精| 精品久久中文字幕有码| 在线视频 国产精品 中文字幕 |