0)ドキュメント
Pythonでのコーディングする時の参考ページ。
(ゼロからのパイソン講座)
https://www.python.jp/train/index.html
(Pythonドキュメント)
https://docs.python.org/ja/3/contents.html
(コーディング規約:PEP 8)
https://pep8-ja.readthedocs.io/ja/latest/#
https://www.python.org/dev/peps/pep-0008/
1)Nullチェック
Pythonでは、NullではなくてNone。
チェックには、「is」演算子がある。
2)例外
例外を投げるのは、throwではなくて、raiseとのこと。
3)可変長引数
argsについては記載されているが、kwargsの記載は見つけれらず。完全な文法仕様を見ると定義されている。
arguments: | args [','] &')' args: | ','.(starred_expression | named_expression !'=')+ [',' kwargs ] | kwargs kwargs: | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+ | ','.kwarg_or_starred+ | ','.kwarg_or_double_starred+ starred_expression: | '*' expression kwarg_or_starred: | NAME '=' expression | starred_expression kwarg_or_double_starred: | NAME '=' expression | '**' expression
4)型(class)チェック
isinstance を使って、以下のように判断できる。
# 文字かのチェック if isinstance(value, str): : # 整数型か文字かのチェック if isinstance(value, [int, str]): :
5)文字列の操作
6)辞書型
7)クラスについて
https://docs.python.org/ja/3/tutorial/classes.html
7-1) 静的メソッドとクラスメソッド
共に、「@」を付けてデコレータとして使うらしいが、普通に関数として@を付けずに使うこともできるらしい。クラスメソッドと静的メソッドの違いは、継承された場合に出てくる。
クラスメソッドが派生クラスから呼び出される場合は、その派生クラスオブジェクトが暗黙の第一引数として渡されます。
Pythonドキュメント:@classmethod
- クラスメソッドは派生(継承)したクラスで動くので、派生クラスに影響される。
- 静的メソッドは派生クラスに影響されない。
7-2) クラス名からクラスの取得
klass = globals()[classname]
8)多重継承
9.5.1. Multiple Inheritance ※一応、原文で確認したほうがいい
検索の基本は以下。
- 深さ優先
- 左から右
9)日付型
10)列挙型
https://docs.python.org/ja/3/library/enum.html#module-enum
11)複数の配列を同時処理する場合
zipで配列をまとめればいい。
https://docs.python.org/ja/3/library/functions.html#zip
ちなみに、ループカウンタを同時に使いたい場合は、以下を使う。
https://docs.python.org/ja/3/library/functions.html#enumerate
12)タプルについて
タプルの場合、リストの内包表記のように書くとGenaratorとなるので、以下のように「tuple」で明示的に変換する必要がある。
names= tuple((f.name for f in keys))
名前付きのタプルを使うことで、プログラムが見やすくなる。
https://docs.python.org/ja/3/library/collections.html#collections.namedtuple
名前付きタプルの一部値を変更した新しいタプルの作成は以下。
https://docs.python.org/3/library/collections.html#collections.somenamedtuple._replace
13)メタクラス
https://docs.python.org/ja/3/reference/datamodel.html#metaclasses
14)ソート
https://docs.python.org/ja/3/howto/sorting.html
15)イテレータ型
https://docs.python.org/ja/3/library/stdtypes.html?highlight=dictionary#iterator-types
・最後の要素は、インデックスが-1で取得できる。後ろから3要素なら、data[-3]で取得できる。
クラスメソッドと静的メソッドについて、記述を追加