簡潔な概要
簡潔な概要
1. エンコーディング
特別な事情がない場合、ファイルは常に UTF-8 エンコーディングを使用します
- #特別な状況がない場合は、ファイル ヘッダーに #-*-coding:utf-8-*-mark を追加する必要があります
2. コード形式
##2.1. インデント##スペースを 4 つ使用しますfor indentation
- 2.2. 行幅
コードの各行は 80 文字を超えないようにする必要があります (特殊な状況では 80 文字をわずかに超える可能性があります)ただし、最大長は 120 を超えることはできません)
理由:これは、差分を並べて表示するときに役立ちます- 利便性 コンソールの下にコードを表示します
- # 長すぎる場合は、設計上の欠陥である可能性があります
- #2.3 、引用符
簡単に言うと、自然言語では二重引用符が使用され、マシン マーキングでは一重引用符が使用されるため、コード内の
# は主に一重引用符 # を使用する必要があります。 ##当然のことながら、この言語では二重引用符「...」が使用されます。
たとえば、エラー メッセージ。多くの場合、まだ Unicode です。u を使用します。 "Hello World"
machine 識別には一重引用符 '...' を使用します。たとえば、dict
正規表現のキーは次のようになります。ネイティブ二重引用符 r"..."
ドキュメント文字列 (docstring) 3 つの二重引用符を使用します """..."""
##2.4、空行
モジュールレベルの関数とクラス定義の間に空の 2 行、
- 空の 1 行クラス メンバー関数間;
class A: def __init__(self): pass def hello(self): pass def main(): pass
- 空行を使用して、関数内で論理的に関連するコードを区切ることができます
2.5. エンコーディング
ファイルは UTF-8 を使用しますエンコーディング
- ファイルヘッダー #-*-conding:utf-8-*-identifier を追加します
3. ステートメントをインポートします
# 正确的写法 import os import sys # 不推荐的写法 import sys,os # 正确的写法 from subprocess import Popen, PIPE import语句应该使用 absolute import # 正确的写法 from foo.bar import Bar # 不推荐的写法 from ..bar import Barインポート ステートメントは、ファイルの先頭、モジュールの説明と docstring の後に配置する必要があります。グローバル変数の前;
- #import ステートメントは順序どおりに配置し、各グループを空白行で区切る必要があります
import os import sys import msgpack import zmq import foo
他のモジュールのクラス定義をインポートする場合は、相対インポートを使用できます。
from myclass import MyClass
名前の競合が発生した場合は、名前空間
を使用できます。
import bar import foo.bar bar.Bar() foo.bar.Bar()
- 4, スペース
二項演算子 [=,-, =,== の両側にはスペースを 1 つ残します。 ,>,in,is not and]:
# 正确的写法 i = i + 1 submitted += 1 x = x * 2 - 1 hypot2 = x * x + y * y c = (a + b) * (a - b) # 不推荐的写法 i=i+1 submitted +=1 x = x*2 - 1 hypot2 = x*x + y*y c = (a+b) * (a-b)
関数のパラメーター リストでは、,
の後にスペースが必要です
# 正确的写法 def complex(real, imag): pass # 不推荐的写法 def complex(real,imag): pass
関数のパラメータ リストでは、デフォルト値の等号
# 正确的写法 def complex(real, imag=0.0): pass # 不推荐的写法 def complex(real, imag = 0.0): pass
- の両側にスペースを追加しないでください。
括弧の後、右括弧の前に余分なスペースを追加しないでください。
# 正确的写法 spam(ham[1], {eggs: 2}) # 不推荐的写法 spam( ham[1], { eggs : 2 } )
辞書の左括弧の前に余分なスペースを追加しないでください。 object
# 正确的写法 dict['key'] = list[index] # 不推荐的写法 dict ['key'] = list [index]
代入ステートメントを整列させるために余分なスペースを使用しないでください
# 正确的写法 x = 1 y = 2 long_variable = 3 # 不推荐的写法 x = 1 y = 2 long_variable = 3
5. 改行
Python では括弧内での改行がサポートされています。現時点では 2 つの状況があります。
1. 2 行目は括弧の先頭までインデントされています
foo = long_function_name(var_one, var_two, var_three, var_four)
2. 2 行目は 4 つのスペースでインデントされており、開始括弧が新しい場合に適しています。 line
def long_function_name( var_one, var_two, var_three, var_four): print(var_one)
バックスラッシュ\改行、二項演算子などを使用して行末に表示する必要があります。この方法を使用して長い文字列を改行することもできます
session.query(MyTable).\ filter_by(id=1).\ one() print 'Hello, '\ '%s %s!' %\ ('Harry', 'Potter')
複合文は禁止されていますつまり、1 行に複数のステートメントが含まれています:
# 正确的写法 do_first() do_second() do_third() # 不推荐的写法 do_first();do_second();do_third();
if/for/while は改行する必要があります:
# 正确的写法 if foo == 'blah': do_blah_thing() # 不推荐的写法 if foo == 'blah': do_blash_thing()
6, docstring
docstring 仕様の最も基本的な 2 つのポイント:
1. すべてのパブリック モジュール、関数、クラス、メソッドは docstring で記述する必要があります。プライベート メソッドは必ずしも必要ではありませんが、def の後にブロック コメントを指定する必要があります。
2. docstring が 1 行しかない場合を除き、docstring の終わり「"」は単独で 1 行を占める必要があります。