-
Notifications
You must be signed in to change notification settings - Fork 0
コーディング規約等
kawano edited this page Jul 1, 2023
·
2 revisions
- 本リポジトリにおけるPythonのコーディング規約は、PEP8を基本とする。
- ソースコードがコーディング規約に準拠しているかの確認は、解析ツール(Linter等)を用いてできる限り機械的に行う。
- PEP8の中で無視する規約、又は規定されていないコーディング規約を導入する際は本ページに例外として記載し、解析ツールへの反映を試みること。
- 機械的に確認を行えない規約のみ、レビュー時に人手で確認する。
- 機械的に確認できない規約は、本ページに記載すること。
- 関数の引数や戻り値には、Type Hintsを付けること。
Pythonの文字列へ変数を展開する方法は、いくつか用意されているが本プロジェクトにおいては%
演算子を用いることとする。
以下に使用例を示す。
name = "Hoge"
age = 10
body_weight_kg = 65.4
print("名前: %s, 年齢: %d, 体重: %f" % (name, age, body_weight_kg))
Note
%
演算子の採用理由は、プログラミング演習等で頻繁に利用するC言語のフォーマット指定子と書式が似ており、混乱が少ないと考えたためである。
参考: 組み込み型 — Python 3.8.10 ドキュメント
無視したい行に、 # noqa
を追記する。
以下、エラーメッセージとそれを無視するための設定例。
camera_system\camera_interface.py:18:1: E402 module level import not at top of file
make: *** [style] エラー 1
import cv2 # noqa
Note
無視できないエラーもある。
参考: Introduction — pycodestyle 2.8.0 documentation
- Pythonのクラスや関数のコメントはドキュメントコメント(Googleスタイル)を採用する
- 関数の引数には型アノテーションを使用する
※これはGoogleスタイルの説明であるため、型アノテーションを使っていません。
class sampleClass() :
"""クラスの説明タイトル
クラスについての説明文
Attributes:
属性の名前 (属性の型): 属性の説明
"""
def func(arg1, arg2) :
"""関数の説明タイトル.
関数についての説明文
Args:
引数の名前 (引数の型): 引数の説明
Returns:
戻り値の型: 戻り値の説明
Note:
注意事項などを記載
"""
return True
docstring が1行で終わる場合は、同じ行を """ で閉じるようにしてください
def func():
"""関数の説明タイトル."""
型アノテーションを具体的なコードで説明する。
Googleスタイルも採用して説明する。
def add(int: a, int b) -> int:
"""足し算を行う関数.
値を2つ受け取り、足した結果を返す.
Args:
a (int): 変数
b (int): 変数
Returns:
int: aとbを足した結果
"""
return a + b
以下の関数は2つの引数を返す関数です。
from typing import Tuple
def func() -> Tuple[str, int]:
~ 略 ~
return a, b
以下の関数は引数の文字数に応じて文字列(str型)か文字数(int型)を返す関数です.
from typing import Union
def func() -> Union[str, int]:
~ 略 ~
return a