Python入門トップページ


目次

  1. プログラミング言語
  2. Anaconda - Jupyter Notebook / JupyterLab の環境設定
  3. Python の基礎
  4. リスト,タプル,辞書,集合
  5. 再び Jupyter Notebook の操作
  6. Python の制御構文
  7. 関数
  8. 便利な関数など
  9. リストの内包表記
  10. 多次元リスト
  11. クラス
    1. クラスの定義とインスタンス化
    2. クラスの初期化
    3. 属性の変更
    4. メソッドの定義(ゲットメソッド)
    5. メソッドの定義(セットメソッド)
    6. メインモジュール
    7. クラスのインポート
    8. クラスの属性を取り出す
    9. クラスの属性値を取り出す
    10. クラスの属性と値を辞書形式で得る
    11. クラスの属性を削除する
    12. モジュールのサーチパス
    13. 様々なインポート方法
  12. 演習問題
  13. 雑多な情報

Python の基礎

クラス

クラスの初期化

前のページのように,その都度属性を追加することができますが,毎回必要になる属性は通常クラスで定義します.このためには,初期化のための特殊メソッド __init__( ) を使います.これは新しいインスタンスが生成された時に自動的に呼び出されます.

例えば,4つの属性を定義し,インスタンス時に,subject と descript は空文字に,priority は 0 に,closed は False に初期化されるようにします.なお,self は生成されたオブジェクト自身を参照するためのものです.

class Issue:
    def __init__(self):
        print('__init__ が呼び出されました')
        self.subject = ''
        self.description = ''
        self.priority = 0
        self.closed = False

print('インスタンスを生成します')
issue1 = Issue()
print('subject :', issue1.subject)
print('description :', issue1.description)
print('priority :',issue1.priority)
print('closed :', issue1.closed)
インスタンスを生成します
__init__ が呼び出されました
subject :
description :
priority : 0
closed : False

あるいは,インスタンス時に subject 引数を渡して, Issue クラスからオブジェクトを作成するようにもできます.

class Issue:
    def __init__(self, subject):
        print('__init__ が呼び出されました')
        self.subject = subject
        self.description = ''
        self.priority = 0
        self.closed = False

print('インスタンスを生成します')
issue1 = Issue('件名を指定してインスタンス化します')
print('subject :', issue1.subject)
print('description :', issue1.description)
print('priority :',issue1.priority)
print('closed :', issue1.closed)
インスタンスを生成します
__init__ が呼び出されました
subject : 件名を指定してインスタンス化します
description :
priority : 0
closed : False

目次に戻る