Чи є різниця між
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
нісенітниці, подбають автоматично.