2017-02-15 37 views
6

私はすべて3 - >class fooclass foo()およびclass foo(object)を使用することができますが、これらの3の違いは何かについては混乱していますか? (私はpython3、主な特性で意味)クラスfoo、クラスfoo()とクラスfoo(オブジェクト)の違いは?

+0

3つはすべて同じです。 –

+0

Python 2では、最初の2つのフォームは悪いことを行います。 Python 3では、それらは同じです(あなたが 'object'に何か愚かなことをしない限り)。 – user2357112

答えて

9

それらを打破するのをしてみましょう:

  1. class foo

    • Pythonの3:これは通常、移動するための方法です。デフォルトでは、Pythonは基本クラスとしてobjectを追加します。
    • Python 2:古いスタイルclassobjが作成され、あらゆる種類の頭痛を引き起こします。
  2. class foo()

    • のPython 3とPythonの2:両方のPythonのバージョンのclass fooと同様に、それを切り落とすことが醜いと違いはありません。
  3. class foo(object)
    • Pythonの3Pythonの2:両方のニシキヘビでは、ほとんどが知っているすべてのグッズを持っている新しいスタイルのクラスになります。人々は通常、Pythonの2で使用される可能性のあるコードを書くときにこのフォームを使用します。オブジェクトから明示的に継承すると、クラスはPython 2の新しいスタイルになります。
関連する問題