違いはありますか
class A:
...
そして
class A():
...
私のクラスのいくつかは前者として定義されており、それらは問題なく機能することに気づきました。空の括弧は何か違いがありますか?
回答:
後者は、古いバージョンのPythonでの構文エラーです。ただし、Python 2.xではobject
、いくつかの便利な機能は新しいスタイルのクラスでのみ使用できるため、可能な限り派生する必要があります(object
Python 3.xでは、新しいスタイルのクラスがデフォルトであるため、派生はオプションです)。
class A()
これまでの構文エラー?Pythonの1.4ドキュメントは、それの罰金を言う、そしてそれらはまだpython.orgで利用可能な最も古いドキュメントをされています。
クラス定義で空の括弧を使用することは構文的に正しくないかもしれませんが、クラス定義の後の括弧は継承を示すために使用されます。例:
class A(baseClass):
...
Pythonでは、基本クラスを含まないクラス宣言の推奨構文は次のとおりです。
class A:
...
他のクラスをサブクラス化する場合を除いて、括弧は使用しないでください。
この問題に関するドキュメントは、 Pythonでクラスを宣言して使用する方法をよりよく理解できるようにする必要があります。
object
ナンセンスに由来するものはすべて自動的に処理されます。