前提・実現したいこと
pythonの継承元のParentのメソッドの呼び出しにおいて
コード1ではself.print_parent()によって呼び出しています。
コード2ではself.print_parent(self)によって呼び出しています。
この2つのコードの結果は同様でparentとchildが表示されるのですが
個人的にインスタンス化していないコード2の方がメモリの点から良いと思うのですが
どちらを採用すべきでしょうか?
また、@staticmethodと@classmethodでの定義でもインスタンス化を省けますが、それ以外のメリットがないように思えました。もし知見があれば合わせてご教授いただければ幸いです。
該当のソースコード
code1
1class Parent: 2 3 def print_parent(self): 4 print("parent") 5 6class Child(Parent): 7 8 def print_child(self): 9 10 print("child") 11 12 self.print_parent() 13 14 15instance = Child() 16instance.print_child(Child)
code2
1 2class Parent: 3 4 def print_parent(self): 5 print("parent") 6 7class Child(Parent): 8 9 def print_child(self): 10 11 12 print("child") 13 14 self.print_parent(self) 15 16 17 18Child.print_child(Child)
上のコードはエラーになりませんか?
回答2件
あなたの回答
tips
プレビュー