Pythonの基本
インデント
Pythonではインデントでブロックを表す。ブロックの開始、終了はインデントレベルで決まる。
コメント
#
から始まり、改行されるまで。
# コメント
print("Hello") # output
ドックストリング(Docstring)
"""
3重ダブルクォートを使用して記載する。
ドックストリングに記述したテキストは関数やクラスオブジェクトの__doc__
に保存される
def hello():
"""Output hello"""
print("Hellow world")
hello.__doc__
オンラインヘルプ
help()
というビルドイン関数を使うとオンラインヘルプが表示できる
help(hello)
または、下記のコマンドで、manコマンドのようにオンラインヘルプを表示してくれる
$ pydoc sys
-w
オプションでhtmlファイルを生成する
$ pydoc -w sys
Docstring formats
Sphinx(reST)
Pypyで標準で使用されている。reStructuredText(reST)という記法で記述する。
ざっくりと下記のようなイメージ
def sample_method(self, param1)
"""
:param param1 str: Description of param1
:return: Description of what is return
:raises MyError: Description of my error
"""
詳しくは、Sphinx日本ユーザ会を見てもらうほうがいい
Google style
Google コーディング規約でSphinxで以下のような書き方をするらしい
"""
This is an example of Google style.
Args:
param1: This is the first param.
param2: This is a second param.
Returns:
This is a description of what is returned.
Raises:
KeyError: Raises an exception.
"""
https://google.github.io/styleguide/pyguide.html?showone=Comments#Comments
Epydoc(Epytext)
javadoc風な感じで書ける
"""
This is a javadoc style.
@param param1: this is a first param
@param param2: this is a second param
@return: this is a description of what is returned
@raise keyError: raises an exception
"""
変数
- 未定義の変数を参照しようとすると、
NameError
が発生 - グローバル変数は存在しない。
global
キーワードを使うと、グローバルスコープになるが、覚える必要なし! - 定数は存在しない。意図的に定数として変数を使用する場合は、大文字の変数名にしておいた方がよい。
nonlocal
でローカルスコープでない一番近くの変数を利用できる
予約語
予約語自体は少ないが、避けておきたい組み込みの名称は、避けたほうが無難
http://qiita.com/cm3/items/6a856c44dd92632aa54f
ユーザ定義関数
公式より抜粋
属性 | 意味 |
---|---|
__doc__ | 関数のドキュメンテーション文字列 |
__name__ | 関数の名前 |
__module__ | 関数が定義されているモジュールの名前 |
詳細は下記参照
__main__
__main__
はトップレベルのコードが実行されるスコープの名前。
モジュールが標準入力から読み込まれたとき、スクリプトから実行されたとき、あるいはインタラクティブプロンプトのとき、__name__
には__main__
が設定される
モジュールは、自身の__name__
をチェックすることでメインスコープで実行されているかを確認できる。
if __name__ == "__main__":
main()
パッケージについては、__main__.py
モジュールを用意することで同じ効果を得られる