Python入門から応用までの学習サイト


新旧クラススタイル

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'>




Python
スタートブック


入門 Python 3


Effective
Python


退屈なことは
Pythonにやらせよう

 
 
 

親クラスのメソッドはどう呼び出すのが正解か!?



確かな力が身につく
Python「超」入門




P  R