3

これの違いは何ですか:

class ThisIsAClass(object)
    pass

print ThisIsAClass()
>> <__main__.ThisIsAClass object at 0x7f0128a8fd10>

この?

class ThisIsAClass()
    pass

print ThisIsAClass()
>> <__main__.ThisIsAClass instance at 0x7f0128a8fd10>
4

3 に答える 3

1

から継承するものobject新しいスタイルのクラスを使用し、もう一方は古いスタイルのクラスを使用します。多くの日常的なユーザーは違いに気付かないでしょうが、多重継承と、使用できる気の利いたデコレータの種類に関しては大きな違いがあります。たとえばproperty、新しいスタイルのクラスでのみ使用できます。

最近では、新しいスタイルのクラスを使用することが推奨されているため、避けるべき正当な理由がない限り、常にオブジェクトから継承することは良い習慣であることがわかりました。また、python3.x に切り替えると、すべてのクラスが自動的に新しいスタイルになるので、今すぐ慣れるのが最善です:)。

于 2013-02-12T17:24:15.510 に答える
1

1 つ目は新しいスタイルのクラスで、2 つ目は古いスタイルのクラスです。それらの違いについては、ドキュメントを参照してください。

于 2013-02-12T17:24:18.443 に答える