回答編集履歴
1
アンダースコアが表示されていなかったので修正
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
Pythonではclassの初期化時に`__init__`が呼ばれます。
|
2
|
-
なので、`test = TestClass('testName')`の時に__init__が呼ばれ、
|
2
|
+
なので、`test = TestClass('testName')`の時に`__init__`が呼ばれ、中の`self.__name = name`が実行されています。
|
3
3
|
この時、`__setattr__`が呼ばれています。
|
4
4
|
|
5
5
|
その後の`test.cube`では`__getattr__`が呼ばれているはずですが、`self.__class__(...`の部分で`self.__name`を読みだそうとして`__getattr__`が呼び出されて無限ループになっているようです。
|