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

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

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

3天內不再提示

Python變量很難記?常見的解決辦法有三種

馬哥Linux運維 ? 來源:未知 ? 作者:李倩 ? 2018-09-30 09:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Python作為一門動態語言,其變量的類型可以自由變化。這個特性提高了代碼的開發效率,卻也增加了閱讀代碼和維護代碼的難度。

假設有一個變量is_request_finished,從名字上來看,這個變量的值應該為True或者False,在寫代碼的時候,最初也確實是這樣定義的。但是可能由于某些原因,在某一次賦值的時候,is_request_finished = 'True'。此時,如果代碼的單元測試不夠完善,那么if is_request_finished在is_request_finished = True和is_request_finished = 'True'的時候都成立,問題被隱藏了。但是當is_request_finished = 'False'的時候,由于'False'作為一個非空字符串,就會使得if is_request_finished依然成立,從而使程序的行為發現異常。

單個變量的類型異常也許還容易發現,但是如果變量是放在字典或者列表里面,那就比較麻煩了。假設需要保存一段個人信息,于是創建了下面這樣一個列表套字典的數據結構:

這種方式開發起來非常的快速而方便,但是其他人甚至是開發者自己在一段時間以后讀代碼,都會有一種想抽死自己的沖動。因為根本不知道這個變量里面保存的是什么東西。

針對以上問題,常見的解決辦法有三種。

Type Hints 與 Variable Annotations

在PEP 484中,引入了Type Hints,在PEP 526中引入了Variable Annotations。它使得Python 3.6及以后的Python 代碼擁有了“聲明”變量類型的能力。這里的“聲明”之所以會打引號,是因為這個聲明是給IDE和人看的。這個聲明對 Python 的解釋器無效。

Type Hints

PyCharm現在已經可以比較好地支持Type Hints了。例如下面這一段代碼:

模擬一段上傳文件的函數,上傳成功以后返回True。接收一個參數url。在正常情況下,這個url應該是一個字符串。于是,使用Type Hints,代碼可以變為:

如果直接運行,其運行效果如下圖所示:

現在假設傳遞一個不是字符串的變量給upload函數,此時PyCharm就會提示類型有問題,如下圖所示:

但提示歸提示,強行運行也是沒有問題的。這就說明Type Hints主要是給IDE和人用的,解釋器并不會關心類型正不正確。

如果修改這個函數的返回值,讓它不返回True或者False,PyCharm 也會發出警告:

Type Hints的官方文檔,可以參閱:typing —Support for type hints

Variable Annotations

對于Variable Annotations,如下圖所示,雖然目前PyCharm還不能很好地提示變量類型不對,但是人在讀代碼的時候,還是會起到一定的幫助。

除了這種寫法外,Variable Annotations還支持把類型寫在注釋中,如下圖所示:

雖然PyCharm不能起到很好的提示作用,但是可以使用一個第三方庫mypy來對代碼做靜態檢查,其運行效果如下圖所示,可以發現賦值的類型與聲明的類型不一致(expression has type “str”, variable has type “bool”, 表達式的類型為“str”,變量的類型是“bool”)。

關于Variable Annotations的更多用法,可以參閱:Syntax for Variable Annotations關于Mypy,可以參閱它的官方文檔。

docstring

在docstring來標注變量的類型,如下圖所示:

這種寫法可以用來提示一個函數,或者一個類它里面的各個變量的情況。但是詳細程度需要看開發者有沒有耐心把這個注釋寫清楚。

Bean

這種方法來自與Java Bean的思想,它主要用來解決列表套字典,字典套字典,字典套列表,列表套列表這種深層的嵌套關系。

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

    關注

    3

    文章

    573

    瀏覽量

    40776
  • 變量
    +關注

    關注

    0

    文章

    614

    瀏覽量

    28984
  • python
    +關注

    關注

    56

    文章

    4828

    瀏覽量

    87002

原文標題:Python變量很難記?記住變量類型的三種方式

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    GE DASH3000 監護儀三種常見故障解決辦法

    01故障現象一:重復開機自檢。故障分析:此現象是購機不久后使用中出現的。原因是此款儀器自動記錄數據的功能,卻沒有自動清除數據的功能,當存儲器存滿數據而又沒有清除時,便會出現此現象。解決辦法
    發表于 09-21 15:21

    三種常見的PCB錯誤是什么

    三種常見的PCB錯誤是什么
    發表于 03-12 06:29

    常見三種無線接入方式是什么?

    藍牙無線組網的優點是什么?常見三種無線接入方式是什么?藍牙無線組網原理與上網方案分享
    發表于 05-26 06:33

    交流伺服電機飛車常見問題哪些解決辦法

    交流伺服電機飛車常見問題哪些解決辦法
    發表于 09-26 09:08

    Flash鎖死的解決辦法是什么

    怎樣去選擇STM32的三種啟動方式呢?Flash鎖死的解決辦法是什么?
    發表于 01-18 07:11

    聲卡硬件維修的常見問題及解決辦法

    聲卡硬件維修的常見問題及解決辦法 常見故障一:聲卡無聲   出現這種故障常見的原因
    發表于 02-23 14:25 ?2766次閱讀

    Matlab編程常見錯誤與解決辦法

    Matlab編程常見錯誤與解決辦法求人不如求己
    發表于 03-16 15:58 ?0次下載

    linux設置環境變量三種方式

     linux設置環境變量以下三種方式
    發表于 06-15 09:05 ?1539次閱讀
    linux設置環境<b class='flag-5'>變量</b>的<b class='flag-5'>三種</b>方式

    伺服電機的三種操控辦法

    通常伺服電機首要有三種操控辦法,即速度操控辦法,轉矩操控辦法和方位操控辦法,下面別離對每種操控辦法
    的頭像 發表于 09-26 10:16 ?8058次閱讀

    針對iPhone12信號問題,蘋果給出三種解決辦法

    解決辦法。對于這種情況,蘋果官方客服是怎么回應的呢?他們給出了三種可能解決的辦法,但目前來看僅僅是可能而已,另外對于無服務的現象,他們也有自己的解讀。
    的頭像 發表于 11-10 18:01 ?4.6w次閱讀

    VGA線太短的解決辦法

    針對視頻傳輸的線纜,延長無非就是2辦法,一是換一個更長的線,另一加一個延長器。我們在這里3
    的頭像 發表于 01-09 09:53 ?7697次閱讀
    VGA線太短的<b class='flag-5'>解決辦法</b>

    python統計詞頻的三種方法

    python統計詞頻的三種方法方法。
    發表于 05-25 14:33 ?2次下載

    單片機常見問題的解決思路和解決辦法

    30個單片機常見問題解決辦法
    的頭像 發表于 09-18 16:51 ?3001次閱讀
    單片機<b class='flag-5'>常見</b>問題的解決思路和<b class='flag-5'>解決辦法</b>

    常見MCU故障及解決辦法

    微控制器單元(MCU)是現代電子設備中的核心組件,負責處理和控制各種功能。然而,由于各種原因,MCU可能會出現故障。以下是一些常見的MCU故障及其解決辦法: 1. 電源問題 故障現象: MCU無法
    的頭像 發表于 11-01 13:41 ?7936次閱讀

    常見墊圈故障及解決辦法 防漏墊圈的設計與應用

    常見墊圈故障及解決辦法 1. 墊圈老化 故障現象: 墊圈因長時間使用而老化,失去彈性,導致密封性能下降。 解決辦法: 定期檢查墊圈的老化情況,及時更換新的墊圈。 2. 墊圈變形 故障現象: 由于安裝
    的頭像 發表于 12-12 15:31 ?1132次閱讀
    主站蜘蛛池模板: 欧美性xxx极品 | 在线观看成人免费视频 | 最近更新2019中文字幕免费 | 亚洲精品日韩在线观看视频 | 国产精品一区二区在线观看 | 亚洲AV精品无码喷水直播间 | 国产亚洲精品久久久久久国模美 | 国产亚洲视频在线 | 成人毛片100部免费看 | 久久超碰色中文字幕 | 肉肉描写很细致的黄文 | 亚洲国产在线2o20 | 囯产免费久久久久久国产免费 | 久久黄色免费网站 | 办公室里做好紧好爽H | 美女露出乳胸扒开尿口 | 亚洲免费久久 | 久久婷婷丁香五月色综合啪免费 | 精品久久99麻豆蜜桃666 | 榴莲黄版无限刷 | 不卡无线在一二三区 | 天天看片视频免费观看 | 伊人精品国产 | 国产精品久久欧美一区 | 日韩一区二区三区视频在线观看 | 曰曰夜夜在线影院视 | 棉袜足j吐奶视频 | 亚洲日本天堂在线 | 亚洲精品国偷拍自产在线 | 久久这里只有精品无码3D | 黄色a三级免费看 | 美女挑战50厘米长的黑人 | 欧美精品99久久久啪啪 | 第一怡春院 | 国产亚洲精品精品精品 | 日本高清不卡码无码v亚洲 日本福利片午夜免费观着 日本粉嫩学生毛绒绒 | freevideoshd| 国偷自产AV一区二区三区健身房 | 99爱在线观看| 国产精品无需播放器 | 摸董事长的裤裆恋老小说 |

    電子發燒友

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

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