メモ書き。
PEP8に準拠
変数名など
abc = 1 #空白文字は行内は1つ、行末は2つが推奨
#定数 大文字スネーク
HOGE_HOGE
#プライベート変数 _プリフィックス(アクセス可能だが紳士協定でアクセスしない約束)
_hoge_hoge
#ローカル変数 小文字スネーク
hoge_hoge
クラス
#クラス名はCapWords(パスカル、アッパーキャメル記法)
#クラス変数 staticな変数 クラス直下に定義
class Hogehoge():
value = 0
class Hogehoge():
def __init__(self, value):
#インスタンス変数 init内(コンストラクタ)で定義 selfを経由する
self._value = value
#デコレータによるプロパティの実装
@property
def value(self):
return self._value
@value.setter
def value(self, value):
self._value = value
@value.deleter
def value(self):
del self._value
#クラスメソッド(継承先クラスで挙動が変わるときなどに利用)
@classmethod
def hoge_class_method(cls, name):
print('ClassMethod' + name)
#スタティックメソッド
@staticmethod
def hoge_static_method():
print('StaticMethod')
#継承
class ChildHogeHoge(HogeHoge):
def __init__(self, value)
super().__init__(value)
関数
#関数定義は小文字スネーク
#docstring
#引数、戻り値アノテーション(型エラーは起きない。あくまでも注釈)
#デフォルト引数
def hoge_hoge(input: 'int' = 1) -> 'int':
"""
2乗するメソッド
"""
return input ** 2
#関数の呼び出し
#キーワード引数が利用可能
hoge_hoge(input = 3)
#可変長引数
def geho_geho(*args):
print('geho')
#可変長キーワード引数(辞書として受取)
def gehoho_gehoho(**kwargs):
print('geho')
gehoho_gehoho(name = 'tanaka')
その他
#!/usr/bin/env python
# ↑ shebang python 2.x系が動作
#!/usr/bin/env python3
# ↑ shebang python 3.x系が動作
def main():
print('hoge')
#モジュール呼出時の実行防止
if __name__ == '__main__':
main()