以下の 2 つのクラスの違いは何ですか? この事件に関する関連情報はありますか?どうもありがとうございました。
class test(object):
def __init__(self, name):
print name
class test():
def __init__(self, name):
print name
python 2.xでは、継承するクラスobject
は新しいスタイルのクラスになりますが、他のクラスはそうではありませんが、python3.xでは両方とも新しいスタイルになります。
ただし、新旧の違いはかなり高度であるため(たとえば、属性の検索順序)、初心者は非互換性についてあまり心配する必要はありません。
興味がある場合は、この回答を参照してください。ただし、ライブラリ開発者などにとっては重要です。
うーん...このwikiページは違いを非常に例証的に説明しています:http://wiki.python.org/moin/NewClassVsClassicClass
そして、Old-(Classic)-Style クラスと New-Style クラスがpy3で同じであるという情報を含むいくつかの回答を見ました -> それは正しくありません:
古いスタイルのクラスは Python 3 で削除され、新しいスタイルのクラスのセマンティクスのみが残ります
これに加えて、New-Style クラスは Python 2.2 からかなり利用可能になりました。2.1 まではクラシック スタイルを使用する必要がありました-> ここを参照してください
違い/情報に関する短い要約は次のとおりです。
type()
ビルトインの動作に大きな影響を与えます)。しかし、ほとんどの場合、新しいスタイルのクラスの導入は、Python のディスクリプタの出現に影響を受けています --> 詳細はこちら.
この場合、なし。最初はオブジェクトから基本クラスとして明示的に継承し、2番目はオブジェクトから暗黙的に継承するためです。