記事
· 7 hr 前 3m read

PEP 8入門

img

この記事では、PythonスタイルガイドであるPEP 8について簡単に紹介します。

PEP 8とは?

簡単に言うと、PEP 8は、Pythonコードの書き方に関するガイドラインとベストプラクティスを提供します。

  • 変数名は snake_case(スネークケース)にする必要があります
  • クラス名は CamelCase(キャメルケース)にする必要があります
  • 関数名は snake_case(スネークケース)にする必要があります
  • 定数は UPPER_CASE(大文字)にする必要があります
  • インデントは4つのスペースにする必要があります(タブではありません)
  • private変数/関数はアンダースコア(_)で始める必要があります
    • Pythonにはprivate変数と関数が存在しないため、これはあくまでも慣習です
  • スクリプトはインポートの際に実行されるべきではありません
    • スクリプトをインポートするとそのコードは即座に実行されます。最初の記事をご覧ください
  • ...

全部を覚える必要はありませんが、頭の片隅に入れておくと他人のコードを理解するのに役立ち、自分のコードも他の人にとって分かりやすくなります ^^。

また、pythonic という言葉を聞いたことがあるかもしれません。 PEP 8に従うことは、「pythonic」なコードを書く方法の一つです(それだけではありませんが、重要な要素です)。

PEP 8がIRIS Python開発者にとって重要で関連性がある理由とは?

IRIS、特にObjectScriptにはスタイルガイドがあり、変数名にはcamelCase(キャメルケース)、クラス名にはPascalCase(パスカルケース)が主に使用されています。

残念ながら、PEP 8は変数名と関数名にsnake_case(スネークケース)の使用を推奨しています。

ご存じかと思いますが、ObjectScriptではアンダースコア(_)は連結のために使用されるため、変数名や関数名での使用には向きません。

この問題を克服する方法ですか? ObjectScriptコード内のPythonでは、二重引用符を使用して変数/関数名を呼び出します。

例:

Class Article.PEP8Example Extends %RegisteredObject
{

ClassMethod Run()
{
    Set sys = ##class(%SYS.Python).Import("sys")
    do sys.path.append("/irisdev/app/src/python/article")
    set pep8Example = ##class(%SYS.Python).Import("pep8_example")
    do pep8Example."my_function"() // Notice the double quotes around the function name
}

}

これは、pep8_example.py ファイル内の my_function 関数を呼び出します。定義は以下のとおりです。

# src/python/article/pep8_example.py
def my_function():
    print("Hello, World!")

Article.PEP8Example クラスの Run メソッドを実行すると、次が出力されます。

iris session iris -U IRISAPP '##class(Article.PEP8Example).Run()'
Hello, World!

以上です!

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください