ホームページ > バックエンド開発 > Python チュートリアル > Python のコーディング標準とは何ですか?

Python のコーディング標準とは何ですか?

WBOY
リリース: 2023-05-09 15:22:07
転載
1665 人が閲覧しました

コーディング標準

Python コーディング標準が重要な理由を一言でまとめると、次のようになります。統一されたコーディング標準により、開発効率が向上します。

ps.python コードの記述は、基本的に PEP8 スタイルに従う必要があります。

1. セミコロン

行末にセミコロンを追加しないでください。 use セミコロンは 2 つのコマンドを同じ行に置きます。

2. ネーミング

module_name、package_name、ClassName、method_name

避けるべき名前

  1. # カウンタとイテレータを除く単一文字の名前。

  2. パッケージ/モジュール名のハイフン (-)

  3. 二重アンダースコアで開始および終了名前 (__init__ などの Python 予約済み)

命名規則

  1. いわゆる「内部」とは、モジュール内で利用可能、またはクラス内で保護またはプライベート

  2. 単一のアンダースコア (_) で始まることは、モジュール変数または関数が保護されていることを示します (import * を使用する場合は使用されません) from が含まれます)

  3. 二重アンダースコア (__) で始まるインスタンス変数またはメソッドは、クラス内のプライベートを示します。

  4. 関連するクラスを関連付けるトップレベルの関数は同じモジュールに配置されます。Java とは異なり、1 つのクラスを 1 つのモジュールに制限する必要はありません。

  5. 大文字で始まる単語を使用してください (CapWords、ただし、モジュール名は小文字で下線を引く必要があります ( lower_with_under.py など)。CapWords.py に似た名前を使用する既存のモジュールが多数ありますが、モジュール名が偶然に一致する場合があるため、これは推奨されません。

#3. 行の長さ

#1 行あたり 80 文字以内

#例外次の状況の場合:

    長いインポート モジュール ステートメントのコメント内の URL
  1. 行の接続にバックスラッシュを使用しないでください。
  2. Python は、括弧、角括弧、中括弧で囲まれた行を暗黙的に接続します。この機能を利用できます。必要に応じて、式の前後にペアを追加できます。余分な括弧。

推奨事項:

foo_bar(self, width, height, color='black', design=None, x='foo',
             emphasis=None, highlight=0)
 
     if (width == 0 and height == 0 and
         color == 'red' and emphasis == 'strong'):
ログイン後にコピー

テキスト文字列が 1 行に収まらない場合は、括弧を使用して暗黙的な行接続を実装できます:

x = ('这是一个非常长非常长非常长非常长 '
     '非常长非常长非常长非常长非常长非常长的字符串')
ログイン後にコピー

4. インデント

コードをインデントするには 4 つのスペースを使用します。

タブを使用したり、タブとスペースを混合したりしないでください。行連結の場合は、折り返された要素を垂直方向に整列させる必要があります (:ref:`行の長さ` を参照)例の一部)、または 4 つのスペースのぶら下がりインデントを使用します (この場合、最初の行にはパラメーターはありません):

       # 与起始变量对齐
       foo = long_function_name(var_one, var_two,
                                var_three, var_four)
 
       # 字典中与起始值对齐
       foo = {
           long_dictionary_key: value1 +
                                value2,
           ...
       }
ログイン後にコピー

5、空の行

トップレベル 2 つの空白定義間に 1 行、メソッド定義の間に 1 行の空白行

最上位定義 (関数定義やクラス定義など) の間に 2 行の空白行。メソッド定義、クラス定義、および最初のメソッドの間には 1 行の空白行が必要です。関数またはメソッド内で、適切と思われる場所がある場合は、空白行を残します。

6. スペース

標準の書式仕様に従って、句読点の両側にスペースを使用します

括弧内にスペースを入れてはなりません。

標準の書式設定規則に従って、句読点の両側にスペースを使用してください

正确示范: spam(ham[1], {eggs: 2}, [])
ログイン後にコピー
错误示范: spam( ham[ 1 ], { eggs: 2 }, [ ] )
ログイン後にコピー

7. クラス

クラスはその定義に含まれている必要があります。以下にクラスを説明するドキュメント文字列があります。クラスにパブリック属性 (属性) がある場合、ドキュメントには属性 (属性) セクションが必要です。また、以下と同じ形式に従う必要があります。関数パラメータ。

class SampleClass(object):
    """Summary of class here.
    Longer class information....
    Longer class information....
    Attributes:
        likes_spam: A boolean indicating if we like SPAM or not.
        eggs: An integer count of the eggs we have laid.
    """
 
    def __init__(self, likes_spam=False):
        """Inits SampleClass with blah."""
        self.likes_spam = likes_spam
        self.eggs = 0
 
    def public_method(self):
        """Performs operation blah."""
ログイン後にコピー

8. ブロック コメントと行コメント

コメントを記述するためのコードの最も重要な部分は、これらの技術的な部分です。次のコードレビュー中に、今すぐコメントを書く必要があります。複雑な操作の場合は、操作を開始する前に数行のコメントを書く必要があります。一目瞭然ではないコードの場合は、コードの最後にコメントを追加する必要があります。行数.

# We use a weighted dictionary search to find out where i is in
# the array.  We extrapolate position based on the largest num
# in the array and the array size and then do binary search to
# get the exact number.
 
if i & (i-1) == 0:        # true iff i is a power of 2
ログイン後にコピー

読みやすさを向上させるために、コメントはコードから少なくとも 2 つのスペースを空ける必要があります。

一方、コードについては決して記述しないでください。彼はあなたより Python のことをよく知っていますが、あなたのコードが何をしているのかを知らないだけです。

# BAD COMMENT: Now go through the b array and make sure whenever i occurs
# the next element is i+1
ログイン後にコピー

9, string

正确示范: 
     x = a + b
     x = '%s, %s!' % (imperative, expletive)
     x = '{}, {}!'.format(imperative, expletive)
     x = 'name: %s; score: %d' % (name, n)
     x = 'name: {}; score: {}'.format(name, n)
ログイン後にコピー
错误示范: 
    x = '%s%s' % (a, b)  # use + in this case
    x = '{}{}'.format(a, b)  # use + in this case
    x = imperative + ', ' + expletive + '!'
    x = 'name: ' + name + '; score: ' + str(n)
ログイン後にコピー

10, import package

各インポートは次のようにする必要があります。単独の行

正确示范: 
import os 
import sys
ログイン後にコピー
错误示范:   import os, sys
ログイン後にコピー

インポートは常にファイルの先頭、モジュール コメントとドキュメント文字列内、モジュールのグローバル変数と定数の前に配置する必要があります。インポートは、最も一般的なものから最も少ないものへの順序でグループ化する必要があります。共通:

標準ライブラリのインポート サードパーティ ライブラリのインポート アプリケーション固有のインポート

【概要】

1. 命名

    関数、変数、プロパティは小文字で綴る必要があります。接続には _ を使用し、キャメルケースの命名規則には従わないでください
  1. クラスと例外は大文字にする必要があります。接続には _ を使用しないでください。
  2. 保護されたインスタンス属性は、単一のアンダースコアで始める必要があります。
  3. のプライベート プロパティインスタンスは 2 つのアンダースコアで始まる必要があります
  4. モジュール レベルの変数の単語は中央で大文字にする必要があります 1 つのアンダースコアで区切ります
  5. 変数は次のようにする必要があります可能な限り意味のあるもの
  6. #2. 空白

    構文に関連するインデントの各レベルは 4 つのスペースで表されます
  1. 代入する場合は等号の両側にスペースが必要です。
  2. 各 1 行に占める文字数は 79 文字以内にしてください。実際の動作では、コードエディタの行スクロールバーが表示されないようにする必要があります
  3. 関数型プログラミングに関数を使用する場合、関数間に 2 つの空白行が必要です。

  4. クラス内の関数の場合、関数間に 1 つの空白行が必要です。

  5. 関数とクラスが同じレベルにある場合、それらの間に 2 つの空行が必要です

  6. 指定された数を超える長い式の場合1 行あたりの文字数の式の場合は、Enter キーを押してインデントする必要があります。通常、最初の行を除くすべての行は、元の

#3 に基づいてスペース 4 つ分インデントされます。

    ##変数が None、False、True のいずれであるかを判断する場合、== は使用しないでください。is を使用してください。たとえば、a が None の場合は、
  1. import ステートメントインポートするときは、相対インポートではなく絶対インポートを使用するようにし、インポート時に対応するモジュールの特定の関数を指定することをお勧めします。たとえば、from datetime import datetime
  2. 標準ライブラリモジュール、サードパーティモジュール、自作モジュールの分類に従ってモジュールをインポートする必要があります
  3. コンテナが空ではないことを検出した場合、if コンテナ名を使用する必要があります。たとえば、lists = [] if lists
  4. 否定語のインライン形式を使用し、式全体の前に否定語を置かないでください。たとえば、「a が None でない場合」ではなく、「a が None でない場合」
  5. 4 となります。 コメント

    一部の機能の説明については、重要なコード ブロック、単一行のコメント
  1. はモジュール関数全体に使用する必要があります。説明には複数行のコメントを使用する必要があります
  2. 関数の詳細な説明とクラスまたは関数の使用法にはドキュメント文字列
  3. python を使用する必要があります。できるだけ英語を使用してください

以上がPython のコーディング標準とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート