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)クラスメソッドと静的メソッド
共に、「@」を付けてデコレータとして使うらしいが、普通に関数として@を付けずに使うこともできるらしい。クラスメソッドと静的メソッドの違いは、継承された場合に出てくる。
クラスメソッドが派生クラスから呼び出される場合は、その派生クラスオブジェクトが暗黙の第一引数として渡されます。
Pythonドキュメント:@classmethod
- クラスメソッドは派生(継承)したクラスで動くので、派生クラスに影響される。
- 静的メソッドは派生クラスに影響されない。
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
12)タプルについて
タプルの場合、リストの内包表記のように書くとGenaratorとなるので、以下のように「tuple」で明示的に変換する必要がある。
names= tuple((f.name for f in keys))
13)メタクラス
https://docs.python.org/ja/3/reference/datamodel.html#metaclasses
クラスメソッドと静的メソッドについて、記述を追加