新人融入團隊必備Python技巧,python 編碼規范,滾雪球學Python第4季12篇

      網友投稿 784 2022-05-30

      python 是非常靈活的語言,所以不同的人編寫出的代碼差異化會很大,正因如此,所以需要一些基本規范,大家都去遵守,這樣才能在多人協作開發中保持一致性。

      本文就為大家梳理一下 python 行業里面達成基本共識的一些規范。

      所有命名規范參考 Python 官方 PEP8 編碼規范。

      python 編碼規范之命名規范

      命名規范建議按照下面風格進行。

      變量名:全部小寫字母,多個單詞可以用下劃線分割;命名空間在模塊或者函數內的,使用單下劃線開頭;私有變量使用雙下劃線,盡量不用輸字符 l(L 小寫 ),O(o 大寫 ),I (i 大寫)這些易混淆的字符,命名時盡量體現變量的數據類型和具體意義,除循環計數、計數器、迭代器以外不要用單字符名稱,例如變量 a。

      # 普通變量 my_name = "xxx" def func(): # 函數內變量 _name = "xxxx" # 體現數據類型 weight_int = 90 class MyClass: def __init__(self): # 私有變量 self.__name = "xxxx"

      模塊名:全部小寫字母,多個單詞使用下劃線分隔,例如 help_moudle。

      包名:全部小寫字母,一般使用點 . 進行分隔,包名不建議使用下劃線,可以使用公司域名作為唯一性標識,例如 com.baidu.help。

      類名:每個單詞的首字母都大寫(大駝峰命名法),例如 MyClass,與大駝峰命名法對應的還有小駝峰命名法,即第一個單詞首字母小寫,其余單詞首字母大寫。

      函數名和方法名:全部小寫字母,參考變量命名規則即可。

      常量:全部大寫字母,多個單詞可以使用下劃線。

      全局變量:全部大寫字母;

      異常類名:異常類也屬于類,所以遵循類名命名規則,但建議使用 Error 作為后綴。

      判斷類變量:一般增加前綴 is,例如 is_error。

      排版規范

      縮進:

      4 個空格,目前很多編輯器已經支持(或者可以設置)一個 Tab 等于 4 個空格。

      空格的使用:

      在 python 代碼編寫的地方,很多都會用到空格,這里的總體原則就是避免不必要的空格。

      (),[],{} 括號內不要空格;

      = 賦值符前后都有一個空格,但賦值符出現在函數默認參數位置,省略左右空格,例如 my_func(name="橡皮擦");

      逗號 ,,冒號 :,分號 ; 前不要有空格;

      函數,列表,元組,字典,集合的左括號前不要有空格,例如 my_list[1],my_dict["name"];

      空行的使用:

      頂級定義,例如函數、類的定義都空 2 行;

      導入模塊代碼塊的前后空 2 行;

      類中的方法之間空 1 行;

      新人融入團隊的必備python技巧,python 編碼規范,滾雪球學Python第4季12篇

      其余位置按照代碼邏輯,如有需要自行空 1 行。

      斷行的規則:

      所謂斷行,就是在 python 文件中要求多少個字符就進行折行,這條一般使用編輯器自動格式化實現。

      python 要求一行代碼最多 79 個字符(文檔字符串或者注釋是 72 個字符),一般使用續行符 \,但是更多時候建議在括號里面進行斷行,就不用續行符了。

      模塊導入規范:

      import 部分,按照標準庫,第三方庫,自己編寫的庫依次導入;

      不要在一條 import 語句中,導入多個庫;

      注釋規范

      這個注釋也有規范,直接學習官方的注釋風格即可,例如下述代碼截取:

      def setprofile(func): """Set a profile function for all threads started from the threading module. The func will be passed to sys.setprofile() for each thread, before its run() method is called. """ global _profile_hook _profile_hook = func

      可以看到文檔注釋使用三引號標記,其中第一行與第二行中間存在 1 個空行,然后折行的內容與三引號對其,最后的三引號自己在一行。

      查閱了很多內置的方法,都是如此,那我們學習過來即可。

      如果文檔注釋僅有一行,保持一行注釋即可,下述代碼是案例展示。

      def qsize(self): '''Return the approximate size of the queue (not reliable!).''' with self.mutex: return self._qsize() def empty(self): '''Return True if the queue is empty, False otherwise (not reliable!). This method is likely to be removed at some point. Use qsize() == 0 as a direct substitute, but be aware that either approach risks a race condition where a queue can grow before the result of empty() or qsize() can be used. To create code that needs to wait for all queued tasks to be completed, the preferred technique is to use the join() method. ''' with self.mutex: return not self._qsize()

      剩下的注釋就是塊注釋與行注釋了,比較簡單,都是使用 # 注釋內容 來實現。

      其它補充說明

      不要亂用括號,例如 if 語句中進行簡單的判斷,不需要括號。

      x = 123 if x: # do_something

      建議寫類的時候,顯式的從 object 繼承,例如下述代碼。

      class MyClass(object): pass

      不要在循環中使用 + 或者 += 操作字符串

      由于字符串是不可變的,所以上述操作符會頻繁的創建臨時對象,可以先將每個字符串存入列表,在后在循環結束,使用 "".join 連接。

      給臨時代碼增加 TODO 注釋,方法如下

      # TODO 這里稍后補充細節 def my_func(): pass

      盡量使用 is 或者 is not 替換 ==,例如 if x is not None 效率優于 if x。

      異常捕獲中,在 except 語句中盡量使用具體的 Exception,異常代碼中 try 內代碼要少。

      使用 startswith() 、endswith() 代替切片進行序列前綴或后綴的檢查,例如下述代碼:

      if name.startswith("橡"): pass

      寫在后面

      以上內容就是本文的全部內容,希望對學習路上的你有所幫助~

      今天是持續寫作的第

      228

      / 365 天。

      期待

      關注

      評論

      更多精彩

      滾雪球學 Python(完結)

      滾雪球學 Python 第二輪(完結)

      滾雪球學 Python 第三輪

      滾雪球學 Python 番外篇(完結)

      Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:ROS2機器人應用簡明教程02安裝
      下一篇:XSS跨站腳本攻擊及漏洞防御
      相關文章
      国产亚洲精久久久久久无码77777| 亚洲另类自拍丝袜第五页| 亚洲国产精品18久久久久久| 亚洲人成人网毛片在线播放| 亚洲电影在线播放| 亚洲视频欧洲视频| 亚洲精品在线免费观看视频| 亚洲精品视频观看| 亚洲白嫩在线观看| 亚洲六月丁香六月婷婷蜜芽| 亚洲av永久无码精品天堂久久| 亚洲另类古典武侠| 亚洲人成黄网在线观看| 亚洲欧洲另类春色校园网站| 2019亚洲午夜无码天堂| 亚洲精品无码少妇30P| 欧美日韩亚洲精品| 亚洲精品国产综合久久一线| 国产亚洲精品影视在线产品| 亚洲乱码中文字幕综合| 久久亚洲AV午夜福利精品一区| 亚洲免费视频在线观看| 亚洲激情视频网站| 亚洲国产乱码最新视频| 亚洲国产精品美女久久久久| 亚洲成人国产精品| 亚洲欭美日韩颜射在线二| 久久精品国产亚洲| 亚洲国产精品综合福利专区| 亚洲精品123区在线观看| 国产精品亚洲专区无码WEB| 亚洲片国产一区一级在线观看| 亚洲欧洲无码AV电影在线观看 | 337P日本欧洲亚洲大胆艺术图 | 亚洲最大中文字幕| 亚洲综合一区二区三区四区五区| 久久亚洲欧美国产精品| 亚洲午夜av影院| 亚洲成人中文字幕| 亚洲AV无码乱码麻豆精品国产| 亚洲成a人片在线不卡一二三区 |