スマートPythonプログラミングを読んだメモ書き
シバン
# !/usr/bin/env python
/usr/bin/env経由でpythonインタプリタを指定することで、その環境でデフォルトとなってるpythonインタプリタを特定のパスに依存すること無く呼び出せる。※しかし環境によって異なるので良し悪し。
エンコード宣言
# -*- coding: utf-8 -*-
ソースコードをどの文字コードを使って解釈するか指定。
※python3ではデフォルトがUTF-8、Python2ではASCII
特殊属性 name
if __name__ == '__main__':
main()
アンダースコアが前後に2つ連続して付いた名前を持つ変数やメソッドはPythonでは特殊な振る舞いをすることを示している。
__name__
にはそのモジュールの名前が文字列で格納される。モジュールがスクリプトとして実行された際に「__main__
」という値が入り、 別のモジュールから呼び出された時には、自身のモジュール名が入るので実行されない、という仕組み。
モジュール
PythonではPythonファイル(.py)そのものがモジュール。
パッケージ
パッケージは配下に複数のモジュールを持つことのできるモジュールで、__init__.py
のファイルが入ったディレクトリ。__init__.py
はパッケージ自身を表すモジュール。モジュールの追加はディレクトリ配下にPythonファイルを置くだけ。
printのバージョン互換
print('Hello')
Python2系では分だが、Python3では関数なので、丸括弧で囲むことで文と関数両方として解釈できるようにする。
コーディングスタイル
PEP8に従う。