
26
第 2 章 Python の実行
obj = Spam()
obj.ham(arg1, arg2) # self <- obj, egg <- arg1, bacon <- arg2
となる
インスタンスが渡されるメソッドの第一引数は、かならず
self
という名前にする慣例になって
おり、
this
や
me
などの、別の名前にするのは避けるべきです。
インスタンスを作成するとき、クラスに
__init__
という名前のメソッドがあれば、自動的に呼
び出されます。
__init__()
はインスタンスの初期化用に呼びだされる特殊メソッドで、クラスの
呼び出しで指定された引数が、
__init__()
への引数として渡されます。
class Spam: # Spam
クラスの定義
def __init__(self, ham, egg):
self.ham = ham #
属性
ham
を作成
self.egg = egg #
属性
egg
を作成
spam = Spam(10, 20) # Spam
クラスのインスタンスを作成。
# Spam.__init__(spam, 10, 20)
が呼び出される。
print(spam.ham, spam.egg)
インスタンスの属性値は、インスタンスに
.
(
ドット
)
記号で属性名を指定して代入するだけで
作成できます。事前に属性を定義する必要はありません。
>>> spam = Spam()
>>> spam.new_attribute = 1 # spam
に属性
new_attribute ...