前のページのように,その都度属性を追加することができますが,毎回必要になる属性は通常クラスで定義します.このためには,初期化のための特殊メソッド __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