Python編程規範

来源:http://www.cnblogs.com/glorywu/archive/2016/03/09/Python-Style-Guide.html
-Advertisement-
Play Games

打破一條既定規則的兩個理由: 應用這個規則將導致代碼可讀性下降。 為了和周圍的代碼保持一致。 編碼: 所有的 Python 腳本文件都應在文件頭標上如下標識或其相容格式的標識: # -*- coding:utf-8 -*- 設置編輯器,預設保存為utf-8格式。 縮進: 永遠不要混用製表符和空格。


打破一條既定規則的兩個理由:

  • 應用這個規則將導致代碼可讀性下降。
  •  為了和周圍的代碼保持一致。

編碼

  •  所有的 Python 腳本文件都應在文件頭標上如下標識或其相容格式的標識:
# -*- coding:utf-8 -*-
  •  設置編輯器,預設保存為utf-8格式。

縮進

  • 永遠不要混用製表符和空格。
  • 最流行的Python縮進方式是僅使用空格,其次是僅使用製表符。
  • 使用空格縮進時預設設置為4個空格。

斷行

  • 行的最大長度不得超過79字元。
  • 對順序排放的大塊文本(文檔字元串或註釋),推薦將長度限制在72字元。
  • 摺疊長行的首選方式是使用 Python 支持的圓括弧,方括弧和花括弧內的行延續。
  • 可以使用反斜杠來斷行,斷行的位置應在操作符前,且換行後多一個縮進。

空行

  • 對函數和類用兩個空行分隔,對類的方法用一個空行分隔。
  • 在import不同種類的模塊之間增加空行。

導入

  • 一條import語句import一個模塊。
  • 最好不要使用from moudle import *。
  • Imports 通常被放置在文件的頂部。僅在模塊註釋和文檔字元串之後,模塊的全局變數和常量之前。
  • import 的次序,先 import Python 的內置模塊,再 import 第三方模塊,最後 import 自己開發的項目中的其它模塊。

空格

  • 在二元算術符、邏輯運算符前後加空格。
  • 括弧(含圓括弧、方括弧和花括弧)前後不加空格。
  • 逗號、冒號、分號前面不加空格,後面加一個空格(冒號在行尾後面不用加空格)。
  • 等號用於指定參數或預設參數值時,兩邊不要加空格。

命名

  • 永遠不要用小寫字母 l ,大寫字母 O ,大寫字母 I 作為單字元的變數名。
  • 常量名所有字母大寫,用下劃線連接各個單詞。
  • 變數名和函數名所有字母小寫,用下劃線連接各個單詞。且變數名不應帶有類型信息。
  • 模塊名和包名所有字母小寫,簡短且不含下劃線。
  • 類名使用首字母大寫的單詞串,不含下劃線。

分枝和迴圈

  • 不要將多條語句寫在同一行上。
  • 多使用迴圈語句的 else 分句,以簡化代碼。

註釋

  • 註釋分為兩種,一種是由 # 開頭的“真正的”註釋,另一種是文檔字元串。前者表明為何選擇當前實現以及這種實現的原理和難點,後者表明如何使用這個包、模塊、類、函數(方法),甚至包括使用示例和單元測試。
  • 堅持適當註釋原則。對不存在技術難點的代碼堅持不註釋,對存在技術難點的代碼必須註釋。當代碼修改時,應始終優先更新註釋。
  • 註釋應該是完整的句子,每個句子以句號結尾。如果註釋很短,則省略末尾的句號。
  • 如果註釋是一個短語或句子,首字母應該大寫,除非它是一個以小寫字母開頭的標識符。
  • 註釋塊應具有與代碼相同的縮進層次。註釋塊中每行以’#’和一個空格開始(除非他是註釋內的縮進文本)。註釋塊內的段落以僅含單個’#’的行分割。 註釋塊上下方最好有一空行包圍。
  • 行內註釋應該至少用兩個空格和語句分開,它們應該以’#’和單個空格開始。

文檔字元串

  • 為所有公共模塊、函數、類和方法編寫文檔字元串。文檔字元串對非公開的方法不是必要的,但需要有一個描述這個方法做什麼的註釋,這個註釋應該在”def”這行後。
  • 多行文檔字元串結尾的””” 應該單獨成行。

其他

  • 對象類型的比較應該始終用isinstance()代替直接比較類型。
if isinstance(obj, int):
  • 不要用 “==” 比較布爾型的值以確定是True或False,如:
if greeting == True:

應該寫成:

if greeting:

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原文地址:http://blog.csdn.net/lubiaopan/article/details/4802430 感謝原作者! static{}(即static塊),會在類被載入的時候執行且僅會被執行一次,一般用來初始化靜態變數和調用靜態方法,下麵我們詳細的討論一下該語句塊的特性及應用。 一、
  • c語言的curl 編程 [Linux@centos-64-min exercise]# gcc -Wall -o curltest curltest.c /tmp/ccosVANi.o: In function `main': curltest.c:(.text+0x2a): undefined r
  • http://blog.csdn.net/appleheshuang/article/details/7602499 一 module通常模塊為一個文件,直接使用import來導入就好了。可以作為module的文件類型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。
  • 學習目的: (1) 熟悉Altera FPGA的PLL的四種工作模式,同時掌握鎖相環的工作原理; (2) 掌握PLL IP核的配置過程及使用方法; (3) 掌握ROM IP核的配置過程及初始化方法,學會用MATLAB產生mif文件來初始化ROM。 學習過程: 【PLL的四種模式】 ① PLL的源同步...
  • 將緩衝區數據寫入磁碟 所謂緩衝區,是Linux系統對文件的一種處理方式。在對文件進行寫操作時,並沒有立即把數據寫入到磁碟,而是把數據寫入到緩衝區。如果需要把數據立即寫入到磁碟,可以使用sync函數。用這個函數強制寫入緩衝區數據的的好處是保證數據同步。 函數原型: int sync(void); 這個
  • 一、求算術平方根 a=0 x=int(raw_input('Enter a number:')) if x >= 0: while a*a < x: a = a + 1 if a*a != x: print x,'is not a perfect square' else: print a else
  • 要使 StringGrid 只能上下滾動,不要左右滾動,只要加入下麵代碼即可: StringGrid1.AniCalculations.TouchTracking := [ttVertical]; ps. 此方法只適用在有觸控屏幕的裝置。
  • 列印文件操作錯誤信息 在進行文件操作是,會遇到許可權不足、找不到文件等錯誤,可以在程式中設置錯誤捕捉語句並顯示錯誤。錯誤捕捉和錯誤輸出使用用錯誤號和streero實現。 函數原型 : char *streeor(int errnum); 頭文件 #include<string.h> #include<
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...