新旧クラススタイル
Python 2系では新クラススタイルと旧クラススタイルあります。その定義方法と違いを見ていきましょう。
Python 2系(2.2以降)では新クラススタイルと旧クラススタイルの両者から選ぶことができます。その定義方法は「object」を継承するかしないかです。
Python 2系
# -*- coding: utf-8 -*-
# 旧スタイルクラス
class OldStyleClass:
pass
# 新スタイルクラス
class NewStyleClass(object):
pass
print type(OldStyleClass)
print type(NewStyleClass)
--実行結果--
<type 'classobj'> <type 'type'>
実行結果の通りtype関数で得られる結果が異なります。
Python 3系では2系でいうところの新クラススタイルのみ存在し、旧クラススタイルはありません。以下のような記述でも新スタイルクラスです。
Python 3系
# 新スタイルクラス
class NewStyleClass:
pass
print(type(NewStyleClass))
--実行結果--
<class 'type'>
親クラスのメソッドはどう呼び出すのが正解か!?
▶応用編:親クラスのメソッド呼び出し
