我的 Python 編碼規範

2021-02-19 Python入門與進階

版權聲明:本文為CSDN博主「天元浪子」 

原文連結:https://blog.csdn.net/xufive/article/details/84957425

python 文件的組成
#!/usr/bin/env python# -*- coding: utf-8 -*-

"""通常這裡是關於本文檔的說明(docstring),須以半角的句號、 問號或驚嘆號結尾!
本行之前應當空一行,繼續完成關於本文檔的說明如果文檔說明可以在一行內結束,結尾的三個雙引號不需要換行;否則,就要像下面這樣"""

import os, timeimport datetimeimport math
import numpy as npimport xlrd, xlwt, xlutils
import youth_mongodbimport youth_curl

BASE_PATH = r"d:\YouthGit"LOG_FILE = u"運行日誌.txt"

class GameRoom(object): """對局室"""
def __init__(self, name, limit=100, **kwds): """構造函數!
name 對局室名字 limit 人數上限 kwds 參數字典 """
pass

def craete_and_start(): """創建並啟動對局室"""
pass

if __name__ == '__main__': # 開啟遊戲服務 start()

Linux 平臺上,一個 python 源碼文件應該以下部分組成。Windows 平臺上,可以省略第一項。

解釋器聲明

編碼格式聲明

模塊注釋或文檔字符串

模塊導入

常量和全局變量聲明

頂級定義(函數或類定義)

執行代碼

編碼格式聲明

通常,編碼格式聲明是必需的。如果 python 源碼文件沒有聲明編碼格式,python 解釋器會默認使用 ASCII 編碼,一旦源碼文件包含非ASCII編碼的字符,python 解釋器就會報錯。以 UTF-8 為例,以下兩種編碼格式聲明都是合乎規則的。我一直 UTF-8 編碼格式,喜歡使用第一種聲明方式。Windows 平臺上,編碼格式聲明必須位於 python 文件的第一行。Linux 平臺上,編碼格式聲明通常位於 python 文件的第二行,第一行是 python 解釋器的路徑聲明。
#!/usr/bin/env python# -*- coding: utf-8 -*-

縮進統一使用 4 個空格進行縮進。絕對不要用tab, 也不要tab和空格混用。對於行連接的情況,我一般使用4空格的懸掛式縮進。例如:
var_dict = {    'name': 'xufive',    'mail': 'xufive@sdysit.com'}

引號文檔字符串 (docstring) 使用三個雙引號
注釋
    # 塊注釋    # 塊注釋    #    # 塊注釋    # 塊注釋

行內注釋,至少使用兩個空格和語句分開:

比較重要的注釋段, 使用多個等號隔開, 可以更加醒目, 突出重要性:
    server= gogame(room, options)
# ===================================== # 請勿在此處傾倒垃圾!!! # =====================================
if __name__ == '__main__': server.run()

空行

空格

文檔字符串

文檔字符串是包、模塊、類或函數裡的第一個語句。這些字符串可以通過對象的__doc__成員被自動提取,並且被pydoc所用。文檔字符串的使用三重雙引號(""")。如果文檔字符串內容不能在一行內寫完,首行須以句號、 問號或驚嘆號結尾,接一空行,結束的三重雙引號必須獨佔一行。

導入模塊

導入總應該放在文件頂部,位於模塊注釋和文檔字符串之後,模塊全局變量和常量之前。導入應該按照從最通用到最不通用的順序分組,分組之間空一行:

標準庫導入

第三方庫導入

應用程式指定導入

模塊儘量使用小寫命名,首字母保持小寫,儘量不要用下劃線類名使用駝峰(CamelCase)命名風格,首字母大寫,私有類可用一個下劃線開頭

回復關鍵字「簡明python 」,立即獲取入門必備書籍《簡明python教程》電子版

回復關鍵字爬蟲」,立即獲取爬蟲學習資料

相關焦點

  • Python編碼規範匯總
    文章目錄編碼格式聲明縮進引號空行導入模塊命名規範編碼格式聲明通常,編碼格式聲明是必需的。如果 python 源碼文件沒有聲明編碼格式,python 解釋器會默認使用 ASCII 編碼,一旦源碼文件包含非ASCII編碼的字符,python 解釋器就會報錯。以 UTF-8 為例,以下兩種編碼格式聲明都是合乎規則的縮進統一使用 4 個空格進行縮進。絕對不要用tab, 也不要tab和空格混用。對於行連接的情況,我一般使用4空格的懸掛式縮進。
  • python自學 第二章 python語言基礎之語法特點(注釋、代碼縮進、編碼規範)
    python帶給我們的簡單、快樂!今天我們主要學習python基礎的語法特點。在python中,通常包含3種類型的注釋,分別為單行注釋、多行注釋和中文編碼聲明注釋。例如:''' @功能:XXXX項目 @author:WEB前端修行日誌 @創建時間:2021-01-10'''print('''人生苦短,我用python''')3、中文編碼聲明注釋在Python中提供一種特殊的中文編碼聲明注釋
  • python字符的編碼與解碼
    什麼是字符編碼計算機裡面是由各種電子電路組成的,它是如何識別我們的寫的字符的,比如hello ,你,我。直接識別是不可能,它只能識別 二進位的0,1字符。所有我們輸入進去的字符,最終都會被轉化成0,1這種組合在一起的一串數字。
  • 深入淺出 + 徹底理解 Python 編碼
    本文的目的是簡明扼要地說明python的編碼機制,並給出一些建議。問題1:問題在哪裡?問題是我們的靶子,心中沒有問題去學習就會抓不住重點。本文使用的編程環境是centos6.7,python2.7。假如我有個程序,它要讀取很多文本文件,每個文本文件的編碼都不一樣,豈不是針對每個讀進來的文件都維護一個編碼信息?很繁瑣。進一步,如果這些文本文件的內容還要做相互的比較連接之類的操作,編碼都不一致,豈不是更麻煩?python是怎麼聰明地解決這個問題的呢?很簡單,就是decode!
  • 科普:Python編碼的前世今生
    一旦走上了編程之路,如果你不把編碼問題搞清楚,那麼它將像幽靈一般糾纏你整個職業生涯,各種靈異事件會接踵而來,揮之不去。只有充分發揮程式設計師死磕到底的精神你才有可能徹底擺脫編碼問題帶來的煩惱。我第一次遇到編碼問題是寫JavaWeb相關的項目,一串字符從瀏覽器游離到應用程式代碼中,翻江倒海沉浸到資料庫中,隨時隨地都有可能踩到編碼的地雷。
  • Python高效編程之88條軍規(1):編碼規範、字節序列與字符串
    關於PEP 8的詳細內容,讀者可以查看下面的頁面:https://www.python.org/dev/peps/pep-0008/在Python語言中,空格是有實際意義的。Python程式設計師應該更關注空格的用法,下面是與空格相關的一些建議(並不一定要遵守,但按照這個規範,會讓你的Python程序看著更舒服):(2)儘管縮進可以使用任意多個空格,但建議統一使用4個空格進行縮進;(3)每行不應該有過多的字符,建議最多不要超過79的字符;(4)如果每行的字符過多(超過79個),應該折到下一行,而且應該在當前縮進的基礎上再使用4個空格進行縮進,如下圖所示:(5)
  • 給妹子講python-S01E07字符編碼歷史觀:從ASCII到Unicode
    前文傳送門:給妹子講python-S01E01好用的列表給妹子講python-S01E02學會用字典給妹子講python-S01E03元組的使用給妹子講python-S01E04,不過倒也讓我想起一直以來困惑的一些概念:ASCII碼、Unicode、字符編碼什麼的,一直沒搞明白過,今天不妨就來介紹一下這方面的內容吧。
  • python基礎學習—04字符串與編碼
    定義:將信息從一種形式轉換為另外一種形式的過程叫做編碼,即信息轉換過程舉例:信息加密解密、語言翻譯1.2  計算機編碼定義:將計算機可讀信息轉換為人類可讀形式的過程叫做計算機編碼。三、python源文件編碼3.1  python2.x在python2.x中,python源文件默認使用ASCII碼格式編碼,因此默認情況下是不支持中文的。
  • 【Python基礎】(6.1)字符編碼
    #階段3、python解釋器解釋執行剛剛讀入的內存的內容,開始識別python語法##2.4 總結python解釋器與文件本編輯的異同如下#1、相同點:前兩個階段二者完全一致,都是將硬碟中文件的內容讀入內存,詳解如下python解釋器是解釋執行文件內容的,因而python解釋器具備讀py文件的功能,這一點與文本編輯器一樣#2、不同點:在階段3時,針對內存中讀入的內容處理方式不同,詳解如下文本編輯器將文件內容讀入內存後,是為了顯示或者編輯,根本不去理會python的語法,而python解釋器將文件內容讀入內存後
  • 給妹子講python-S01E08理清python中的字符編碼方法
    前文傳送門:給妹子講python-S01E01好用的列表給妹子講python-S01E02學會用字典給妹子講python-S01E03元組的使用給妹子講python-S01E04容器遍歷和列表解析式給妹子講python-S01E05字符串的基本用法給妹子講python-S01E06字符串用法進階給妹子講python-S01E07字符編碼歷史觀:從ASCII到Unicode【要點搶先看】1.python中編、解碼的本質是文本字符串和字節字符串的相互轉換
  • Python 編碼錯誤的本質原因
    如果只用一種字符編碼就能表示地球甚至火星上任何一個字符時,問題就迎刃而解了。是它,是它,就是它,我們的小英雄,統一聯盟國際組織提出了Unicode 編碼,Unicode 的學名是」Universal Multiple-Octet Coded Character Set」,簡稱為UCS。
  • Python編寫代碼的規範要求
    ,當然我們寫程序也不例外,也是有規範的。遵循好的規範可以不僅提高我們代碼的可讀性,還可以提高程序開發效率。新手和高手之間的差別主要也體現在規範上,這裡勇哥主要給大家分享python的PEP8規範,希望大家在編寫代碼的時候按照規範要求去編寫。
  • python入門教程06-01(python語法入門之字符編碼)
    解釋器執行文件的流程以python test.py為例,執行流程如下#階段1、啟動python解釋器,此時就相當於啟動了一個文本編輯器#階段2、python解釋器相當於文本編輯器,從硬碟上將test.py的內容讀入到內存中#階段3、python解釋器解釋執行剛剛讀入的內存的內容,開始識別python語法2.4 總結python解釋器與文件本編輯的異同如下
  • Python 2.x 字符編碼終極指南
    但僅了解這篇文章的內容,並不能幫我們在日常編程中躲過一些字符編碼相關的坑,Stackoverflow 上就有大量編碼相關的問題,比如 1,2,3。本文首先嘗試對編碼、解碼進行一個宏觀、直觀的解讀,然後詳細來解釋 python2 中的str和unicode,並對常見的UnicodeEncodeError 和 UnicodeDecodeError 異常進行剖析。
  • Python 編碼為什麼那麼蛋疼?
    作者:劉志軍,6年+Python使用經驗, 高級開發工程師,目前在網際網路醫療行業從事Web系統構架工作個人公眾號:Python
  • 編碼風格不是編碼規範
    我並不認為程式設計師是一個情緒特別豐富的群體。但有一些事情卻能很容易刺激程式設計師的神經,那就是代碼格式和布局。如果看到一個函數的括弧在同一行上沒有閉合,我的眼睛會噴血。如果看到有人沒有恰好的在兩個函數間留一空行,我的小腿會抽筋。但重點在這裡——除非是在家裡開發自己的業餘愛好軟體,我的這些個人喜好其實是無關緊要的。同樣,作為一個團隊中的一員,你的個人編程喜好也應該放到一邊。 編碼風格很容易會和編碼規範混為一談,因為這兩個詞經常會被人換著使用。我認為,編碼規範同時包括了編碼風格和其它規範,不僅僅指代碼格式。
  • python如何編碼解碼解析json對象
    前言json是一種以鍵值對形式存在的輕量級的數據結構,和python中的字典類型具有相同的表現結構。使用 JSON 函數需要導入 json 庫:import json。在Java中我們知道json有jsonObject和jsonArray,且可以通過String、map等相互轉換,那麼在python中,json對象是如何來讀取解析的呢?python解析json對象1.json.dumpsjson.dumps用於將 Python 對象編碼成 JSON 字符串。
  • Python安全編碼指南(一)
    我自己也在驗證探究過程中添油加醋了一點,如有錯誤還請指出哈。下面一張圖表示他們的方法論:探究的場景為:輸入的數據是"未知"的類型和大小使用RFC規範構建Libraries數據在沒有經過適當的驗證就被處理了邏輯被更改為是獨立於作業系統的0x01 Date and time —> time, datetime, os
  • python 輸出編碼錯誤問題
    /usr/bin/python#-*-coding:utf-8 -*-a={'name': 'fengshou'}b={'name': '豐收'}原因:這是因為win的,命令行用的是cp936編碼,而上面腳本用的是utf-8編碼,因此導致亂碼。解決方法是,使用decode和encode函數對字符重新解碼和編碼。
  • python爬蟲小知識,中文在url中的編碼解碼
    有時候我們做爬蟲經常會遇到這種編碼格式,大概的樣式為 %xx%xx%xx,對於這部分編碼,python提供了一個quote的方法來編碼,對應的解碼為unquote方法。導入quote方法是urllib庫的一個方法,它的導入方式為from urllib.parse import quote,unquote不需要安裝,urllib庫是python自帶的一個庫,直接導入就可以使用。