19/03/17 18:01:31.22 oeP02mQD.net
>>938
さらにselfというものがわかりやすいようにこのクラスを普通の関数と辞書型で再現してみる
def MyClass(name):
self = {}
__init__(self, name)
return self
def __init__(self, name):
self["name"] = name
def getname(self):
return self["name"]
a = MyClass("John")
getname(a) // 出力 'John'
これでだいたい再現できる
何が言いたいかというとMyClass()という関数が空のインスタンス(ここでは辞書だが)を作成して__init__に引数として渡している
たぶんPythonのクラスでも暗黙的にMyClass()という関数が生成されて間接的に__init__を呼び出している
つまりself(=MyClassのインスタンス)というのは暗黙的に作られたMyClass()関数内で作られているオブジェクトだと考えればいい
Pythonほとんどやったことないから想像で適当に言ってるだけだけどな