共通コーディングスタイルのためのPython?
-
26-09-2019 - |
質問
思新しいPython、成長していきたい思いが強い私の最初の重大なオープンソースプロジェクト.えていただきたいと思い何の共通コーディングスタイルのためのpythonます。いきものが何を行っています。
1.- 何が最も広く使用されているカラム幅?(永遠の質問)
私は現在、こだわり-80カラムで済みます。)
2.- うな引用符を使えますか。(いにあり、PEP8のいずれかの何かクリア)
私が使っているシングルクォーテーションのためのもdocstringであるトリプルダブルクォート.
3.- い私の輸入は?
私の手のファイルのヘッダの順となった。
import sys
import -rest of python modules needed-
import whatever
import -rest of application modules-
<code here>
4.- 利用できる"インポートなどを実行します。機能 として blah"?
また一部の書類が無視を行っています。
5.- タブまたは空間記述?
現在、4つのスタブを入力します。
6.- 変数名の命名。私は小文字のためのすべての授業は、ルにお電話にてお申込下さい(キャメルケース.
ではなく、何でもおすすめ?
解決
PEP 8 のすべての一般的なスタイルの「ルート」はかなりありますガイドます。
非常によく考えられているいくつかの部分を持っているのあなたの特定の質問に対するオンます:
1.-最も広く使用されている列の幅は何ですか? (永遠の質問) 私は現在、80個の列にこだわっています (と、それは痛みだ!)
80個の列が
最も人気のあります2.-何重引用符を使用するには? (私はすべてを見てきましたし、PEP 8は言及していません 明確なもの)私はシングルを使用しています すべてが、ドキュメンテーション文字列のための引用符、 これはトリプル二重引用符を使用します。
私はあなたが使用しているスタイルを好むが、それでもGoogleはこれについて合意に達することができなかった: - (
3.-はどこに輸入を置けばいいの?私はこの中にファイルヘッダーでそれらを入れています オーダーます。
輸入sysは、パイソンの-restインポート 必要なモジュール -
の-restインポートどんなインポート アプリケーションモジュール -
はい、優れた選択肢と、あまりにも人気ます。
ないモジュール内から特定の名前 -4.-することができます私の使用「輸入whatever.function何とかとして」?私はいくつかを見ました 文書は無視がこれをやっていること。
私は強く、常にインポートモジュールをことをお勧めします。これは、スタイルだけではありません - 強力な利点は、例えばありますそれをやってでテスト容易性インチas
句は、モジュールの名前または回避衝突を短縮するために、細かいです。
5.-タブやインデントのためのスペース?現在、4つのスペースタブを使用します。
圧倒的最も人気ます。
6.-変数の命名スタイル?私はすべてが、クラスのために小文字を使用しています、 これは、私はキャメルケースに入れます。
ほとんど誰も名の大文字初期とすべて大文字での定数を持つクラスます。
他のヒント
1.-ほとんど誰もが16を有しています。彼らはワイドスクリーンを持っていない場合でも、彼らはピクセルの多くを持って、80のcolsの誰もが4にリモートターミナルウィンドウでコマンドラインでハッキングされたときにそれがあったような大きな実用的な契約ブレーカではありません。で3モニターそれはあまりにも長くなったときに320 X 240私は通常、主観的である、行を終了します。私は23" モニタX 2にX 1152 2048にしています。
デフォルトでは、2つの.-単一引用符あなたが単一引用符を埋め込む必要があるときに二重引用符、二重引用符をエスケープする必要があり、埋め込まれた改行と文字列のトリプル引用符はありませんので。
それらはモジュールにグローバルに必要とされていない場合は、3.-ファイルの先頭にそれらを置くが、時にはあなたはのメインの機能に入れます。
4.-いくつかのモジュールの名前を変更するための一般的なイディオムです。良い例は以下の通りである。
try:
# for Python 2.6.x
import json
except ImportError:
# for previous Pythons
try:
import simplejson as json
except ImportError:
sys.exit('easy_install simplejson')
が、必要であれば、単にクラスまたは関数をインポートするための好ましい方法は、オプションのfrom module import xxx
とas yyy
です。
5.-必ず使用SPACES! 2または4限りないタブとして
6.-クラスはUpperCaseCamelStyleまで、変数は時々lowerCamelCaseまたは時々all_lowecase_separated_by_underscores、としての機能名がある小文字ている必要があります。 "定数" ALL_UPPER_CASE_SEPARATED_BY_UNDERSCORES
でなければなりません 疑わしい PEP 8を参照する、Pythonのソースコードベースでは、既存の慣習。しかし、ほとんどの輸入事は可能な限りの内部的に一貫性のになることです。 はすべてのPythonコードは、それが同じ人によって書かれたように見える必要があるときに、これまで可能。の
以来、私は夢中になっている"スタイリング"私のガイドラインI、現在ご利用の近く8k海プロジェクトは約35ファイルでの試合PEP8.
PEP8は79(作?), ないなんて80今まで使用されています。以下の眼球運動ですね。
Docstringともに跨る複数のラインが"'.にも
''
.まんのように二重引用符で囲んでのみ利用シングルクォーテーションのすべての時間---うことになる自分を大切にしないヤツにJavaScriptコーナーがありすぎる使用"ですが、そのあいだに逃がすべてのHTMLっ:Oのヘッド、内蔵の前にカスタムアプリケーションコードです。もっと"失敗""早くアプローチがあるもののバージョンに依存(GTKどん輸入れます。
となりますが、しないなんて輸入fooからはfooの輸入がある場合(e.G.その名はすでに定義された別のインポート)を使っていらfoo輸入バーとしてのblaます。
4ます。ます。場を利用したいタブで開く確に変換する作業空間の深い場合、どのSCM.ません(!) ミックスのタブを空間!!!ってできることを紹介す恐ろしいさせてしまいます。
some_methodはfoo_function、一定なのに対し、MyClass.
またインデントについて議論する場合は、メソッドの呼び出しも複数の行きについて議論を行継続スタイルまでご利用いただきます。いずれもサラウンドと ()
または、 \
末ラインダ.いとみなされ、また事業者や他のものには次の行に折り返します。
# always insert a newline after a wrapped one
from bla import foo, test, goo, \
another_thing
def some_method_thats_too_long_for_80_columns(foo_argument, bar_argument, bla_argument,
baz_argument):
do_something(test, bla, baz)
value = 123 * foo + ten \
- bla
if test > 20 \
and x < 4:
test_something()
elif foo > 7 \
and bla == 2 \
or me == blaaaaaa:
test_the_megamoth()
またしているのか教えてくださいガイドラインとの比較事業、 is(not)
チェック対 None True False
という暗黙のbooleanとの比較など if foo:
, いい if foo is True:
, 動的入力には何がしたいっていることをご確認くださいものは右ることができます。
この他に私はおなかが空の文字列!何らかの定数ファイルのコードをいもののように username == UNSET_USERNAME
または label = UNSET_LABEL
でより記述する。
私も厳しい空白文字が定める指針及びその他のゃがい(だから夢中になっているので、ものを書いたスクリプトをチェックマーコード:
http://github.com/BonsaiDen/Atarashii/blob/master/checkstyle
警告!):もっと痛めつけてやるからなお!もJSLintません---
で2つのセント.