Подтвердить что ты не робот

Синтаксис определения класса Python

Есть ли разница между

class A:
    ...

и

class A():
    ...

Я только понял, что пара моих классов определена как первая, и они работают нормально. Имеются ли пустые круглые скобки?

4b9b3361

Ответ 1

Последняя является синтаксической ошибкой для более старых версий Python. В Python 2.x вы должны извлекаться из object, когда это возможно, хотя это возможно, поскольку несколько полезных функций доступны только с классами нового стиля (исходя из object является необязательным в Python 3.x, поскольку классы нового стиля по умолчанию там).

Ответ 2

Хотя для определения пустых круглых скобок в определении класса может быть не синтаксически неверно использовать круглые скобки после определения класса, например:

class A(baseClass):
    ...

В Python предпочтительный синтаксис объявления класса без каких-либо базовых классов просто:

class A:
    ...

Не используйте круглые скобки, если вы не подклассифицируете другие классы.

документы по этому вопросу должны дать вам лучшее представление о том, как объявлять и использовать классы в Python.