Есть ли разница между
class A:
...
а также
class A():
...
Я только что понял, что пара моих классов определены как первые и работают нормально. Имеет ли значение пустая скобка?
Последнее является синтаксической ошибкой в старых версиях Python. В Python 2.x вы должны по возможности производиться от него object
, поскольку несколько полезных функций доступны только с классами нового стиля (наследование от не object
является обязательным в Python 3.x, поскольку классы нового стиля там используются по умолчанию).
object
ерунды, устраняется автоматически.class A()
когда-нибудь синтаксическая ошибка? Документы Python 1.4 говорят, что это нормально, и это самые старые документы, все еще доступные на python.org.Хотя использование пустых скобок в определении класса может быть синтаксически некорректным, скобки после определения класса используются для обозначения наследования, например:
class A(baseClass): ...
В Python предпочтительный синтаксис для объявления класса без каких-либо базовых классов просто:
class A: ...
Не используйте круглые скобки, если вы не создаете подклассы других классов.
В документах по этому вопросу должны дать вам лучшее понимание того , как объявить и использование классов в Python.
источник