Czy jest różnica między
class A:
...
i
class A():
...
Właśnie zdałem sobie sprawę, że kilka moich zajęć jest zdefiniowanych jako pierwsze i działają dobrze. Czy pusty nawias ma znaczenie?
Odpowiedzi:
Ta ostatnia jest błędem składniowym w starszych wersjach Pythona. Jednak w Pythonie 2.x powinieneś czerpać z, object
gdy tylko jest to możliwe, ponieważ kilka przydatnych funkcji jest dostępnych tylko w klasach nowego stylu (wyprowadzenie z object
jest opcjonalne w Pythonie 3.x, ponieważ klasy w nowym stylu są tam domyślne).
class A()
kiedykolwiek wystąpił błąd składni? Dokumentacja Pythona 1.4 mówi, że jest w porządku i są to najstarsze dokumenty wciąż dostępne na python.org.
Chociaż użycie pustych nawiasów w definicji klasy może nie być niepoprawne pod względem składniowym, nawiasy po definicji klasy służą do wskazania dziedziczenia, np .:
class A(baseClass):
...
W Pythonie preferowaną składnią deklaracji klasy bez klas bazowych jest po prostu:
class A:
...
Nie używaj nawiasów, chyba że tworzysz podklasy innych klas.
Dokumentacja w tej sprawie powinna dać ci lepsze zrozumienie, jak deklarować i używać klas w Pythonie.
object
nonsensów, jest załatwiane automatycznie.