(2016/10/04追記) 以下はPython3.5で確認。Python2.xではsuperを引数なしで呼べないためそのままでは実行できず、かつ実行結果も同等のものになるかは不明。 __new__と__init__ Pythonでは、__new__メソッド、__init__メソッドの2つのメソッドを実装したクラスを生成することで、そのクラスのインスタンス作成時に行う処理を定義することができる。 class A(object): def __new__(cls): print('new') return super().__new__(cls) def __init__(self): print('init') super().__init__() >>> A() new init <__main__.A object at 0x10da40050> 上記の例を見るに、__new__と__
![__new__と__init__とメタクラスと - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/5971bd9284c7693a683583b64176eaffd81d56a7/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9X19uZXdfXyVFMyU4MSVBOF9faW5pdF9fJUUzJTgxJUE4JUUzJTgzJUExJUUzJTgyJUJGJUUzJTgyJUFGJUUzJTgzJUE5JUUzJTgyJUI5JUUzJTgxJUE4JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1jYTliZDJjMjcxMGI5MTgyNWI2MzA1ODE2ZjEzNWFmMw%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwRkd0YXRzdXJvJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1hYzVhODYzNmRlZGRhNTg1NDUxMWFkMWEyNzgyNjFkNQ%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D2e83618f136d6738edc3b64643c42d4e)