hrk1l2x

1 minute read

Python 基礎

shebang

#!/usr/ bin/ env python
# -*- coding: utf-8 -*-

Python3 からエンコード宣言が無くともデフォルトで utf-8 でエンコードされるようになった。

Access Level

  • 変数、関数のアクセスレベルを制御する構文は無い。
  • 代わりに名前で表現する。
  • アンダースコアをオブジェクト名の先頭に付与する。

マングリング

  • Pythonにはアクセス制御構文はないが、それと類似したもの
  • classの公開したくないmember名先頭に __ を追加する
    • __test で定義して __Class__test で呼び出すような形
  • 継承したサブクラスでメンバ名が衝突するのを防ぐのが本来の役目

定数

  • const 等はない為、定数であることを表す為に変数を全て大文字にする。
  • 完全に変更させない為には@propertyデコレータで修飾する。
class Testclass():
    @property
    def TEST_CON(self):
        return

特殊属性

#!/usr/ bin/ env python
# -*- coding: utf-8 -*-

def main():
    print('hello')

if __name__ == '__main__':
    main()

__name__ は特殊属性と呼ばれ、module名が予め格納されている。moduleがPythonスクリプトとして実行された場合のみmodule名ではなく __main__ が代入される。

module

Pythonファイルそれ自体であり、ファイル名でimport可能。

package

複数moduleを持つmodule。 from x import y の x の部分。

method の種類

  • instance method 第1引数は必須で、慣例としてselfにする。 インスタンス経由で呼び出すと、呼び出したインスタンスが第1引数に入る。 クラス経由で呼び出すと、呼び出したときの引数がそのまま渡される。 クラスメソッド @classmethodを付けて定義する。第1引数は必須で、慣例としてclsにする。 インスタンス経由で呼び出すと、呼び出したインスタンスのクラスが第1引数に入る。 クラス経由で呼び出すと、そのクラスが第1引数に入る。 スタティックメソッド @staticmethodを付けて定義する。引数は必須ではない。 呼び出したときの引数がそのまま渡される。
comments powered by Disqus