Frage zur Klassendefinition

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
myphyday
User
Beiträge: 2
Registriert: Samstag 15. August 2020, 22:57

Einen wunderschönen guten Morgen,

ich komme aus der javawelt und arbeite mich gerade mit großem Spaß in PYthon ein.

Ich bin auf etwas gestoßen was in unterschiedlichen Quellen anders dargestellt wird.

Wie definiere ich in Python eine Klasse?

class X:
class X():
class X(object): ?

Ich habe alles durchprobiert - scheint zu funktionieren. Ich das alles gleichwertig?
Habt Ihr für mich eine verlässliche Quelle die auch erklärt warum man das so oder so schreibt?

Grüße und vielen Dank,
myphyday
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Seit Python 3 (und nichts anderes solltest du benutzen) ist Variante 1 die einzig notwendige - außer du leitest ab natürlich. Das man mal von object erben musste ist ein atavismus aus Python 2 Zeiten.
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@myphyday: Das ist in Python 3 alles gleichwertig und man sollte die erste Variante nehmen, denn sowohl die Klammern als auch `object` sind überflüssig weil sie nichts bewirken bzw. `object` der Defaultwert für die Basisklasse ist wenn man nichts angibt. Zumindest letzteres ist in Java ja auch so. Da kann man ja auch diese beiden Varianten verwenden, und nimmt die erste:

public class X { …
public class X extends Object { …
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
myphyday
User
Beiträge: 2
Registriert: Samstag 15. August 2020, 22:57

Vielen Dank - Perfekt!

Viele Grüße,
myphyday
Antworten