タイトルに反して特にヤマなし。そげぶ。
前回の記事のコメントを見ていて、ふと「newでreturnするインスタンスとinitで渡されるself変数ってどういう関係なんだろう」という疑問が湧いてきた。
初期化時に、インスタンスidを確認する
>>> class D(object):
def __new__(cls):
ins = super().__new__(cls)
print(id(ins))
return ins
def __init__(self):
print(id(self))
>>> d = D()
4333861392
4333861392
>>> print(id(d))
4333861392
結論
_newでreturnするインスタンス = __init_で渡されるselfインスタンス = 生成されたインスタンス
当然といえば当然か。