26

重複の可能性:
Pythonの古いスタイルと新しいスタイルのクラス

Python 2.7の新しいスタイルと古いスタイルのクラスの現状はどうなっていますか?

私はPythonを頻繁に使用しませんが、この問題を漠然と覚えています。ドキュメントにはこの問題がまったく記載されていないようです:Pythonチュートリアル:クラス。私はまだこれについて心配する必要がありますか?一般的に、クラスを次のように宣言する必要がありますか?

class MyClass:
    pass

また?

class MyClass(object):
    pass
4

2 に答える 2

26

常に「オブジェクト」をサブクラス化します。それらは新しいスタイルのクラスです。

  • そうすれば、Python3の準備が整います。

  • .super()あなたがそれらを必要とするならば、そのように適切に働くようなもの。

于 2012-12-11T09:07:33.763 に答える
11

常に新しいスタイルのクラスを使用する必要があります。新しいスタイルのクラスは、Pythonプログラミング言語で組み込み型とユーザー定義クラスを統合する取り組みの一環です。

新しいスタイルのクラスには、次のようないくつかの機能があります。

  • プロパティ:get/setメソッドによって定義される属性
  • 静的メソッドとクラスメソッド
  • 新しいgetattributeフックは、getattrとは異なりインスタンスで属性が見つからない場合だけでなく、すべての属性アクセスに対して呼び出されます。
  • 記述子:オブジェクトを介した属性アクセスの動作を定義するプロトコル
  • 新しいコンストラクターをオーバーライドする
  • メタクラス

ソース。

于 2012-12-11T09:17:12.867 に答える