Seite 1 von 1

Frage zur Klassendefinition

Verfasst: Donnerstag 27. August 2020, 10:41
von myphyday
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

Re: Frage zur Klassendefinition

Verfasst: Donnerstag 27. August 2020, 11:48
von __deets__
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.

Re: Frage zur Klassendefinition

Verfasst: Donnerstag 27. August 2020, 11:52
von __blackjack__
@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 { …

Re: Frage zur Klassendefinition

Verfasst: Donnerstag 27. August 2020, 16:33
von myphyday
Vielen Dank - Perfekt!

Viele Grüße,
myphyday