Apakah ada perbedaan antara
class A:
...
dan
class A():
...
Saya baru menyadari bahwa beberapa kelas saya didefinisikan sebagai kelas pertama dan mereka bekerja dengan baik. Apakah tanda kurung kosong ada bedanya?
Jawaban:
Yang terakhir adalah kesalahan sintaks pada versi lama Python. Dalam Python 2.x Anda harus mendapatkan dari object
kapan pun memungkinkan, karena beberapa fitur yang berguna hanya tersedia dengan kelas gaya baru (menurunkan dari object
adalah opsional di Python 3.x, karena kelas gaya baru adalah default di sana).
class A()
pernah terjadi kesalahan sintaks? Dokumen Python 1.4 mengatakan tidak apa-apa, dan itu adalah dokumen tertua yang masih tersedia di python.org.
Meskipun mungkin tidak salah secara sintaksis untuk menggunakan tanda kurung kosong dalam definisi kelas, tanda kurung setelah definisi kelas digunakan untuk menunjukkan pewarisan, misalnya:
class A(baseClass):
...
Dalam Python, sintaks yang disukai untuk deklarasi kelas tanpa kelas dasar adalah:
class A:
...
Jangan gunakan tanda kurung kecuali Anda membuat subclass kelas lain.
The docs tentang masalah ini harus memberikan pemahaman yang lebih baik tentang bagaimana untuk menyatakan dan kelas digunakan dalam Python.
object
omong kosong diurus secara otomatis.