Klassenmitglieder - Java vs. Python

8

Ich komme jetzt aus Java und lerne Python. Ich versuche das Konzept der Klassenmitglieder in Python zu verstehen.

Hier ist ein Beispielprogramm in Java:

%Vor%

Das habe ich in Python getan, nachdem ich einige Beispiele gefunden habe:

%Vor%

Beide Programme geben zurück:

%Vor%

Hier sind meine Fragen:

  1. Ist der Python-Code korrekt?
  2. Der Programmierstil von Python scheint mir im Vergleich zu Java kompakter zu sein. Also frage ich mich, WARUM erfordert Python die Übergabe eines "self" -Parameters.
  3. An diesem Punkt scheint Python "komplexer" zu sein als Java. Oder gibt es eine Möglichkeit, den "Selbst" -Parameter zu entfernen?
Gerhard 02.06.2016, 19:05
quelle

3 Antworten

7

Zuerst ist Ihr Python-Code korrekt.

Es kommt nur darauf an, wie die Sprachen gestaltet sind. Java verwendet eine Art automatische Inferenz eines Verweises auf das Objekt. Es kann manchmal zu seltsamen Verhaltensweisen für Nicht-Java-Experten führen:

%Vor%

Deshalb gibt es in Java das Keyword this , das verwendet werden kann (aber Sie werden nicht gezwungen), um diese Mehrdeutigkeit zu lösen.

Das Python-Team hat entschieden, das Wort self (oder jedes andere Wort, das ich später erklären werde) zu verwenden, um diese Art von Problemen zu vermeiden. Du kannst es nicht loswerden. Allerdings ist Java immer noch eine ausführlichere Sprache als Python und das Schlüsselwort self beeinflusst diese Annahme nicht sehr.

Sie sind jedoch nicht verpflichtet, das Wort "self" als Referenz für das aktuelle Objekt zu verwenden. Sie können jedes andere Wort verwenden, das der erste Parameter Ihrer Methode wäre (aber es ist eine sehr schlechte Übung).

Hier können Sie zwei Referenzen sehen, die tief erklären, warum "das Selbst hier ist":

Ссылка

Ссылка

    
Alexis Clarembeau 02.06.2016, 19:12
quelle
0

Also in Java ist die Struktur im Allgemeinen

%Vor%

ist in Python sehr ähnlich. gleiche Struktur nur für alle Funktionen, die mit den Daten arbeiten, die Sie selbst als Argument verwenden müssen. wo Java, musste es keine Argumente nehmen.

Auch scheint es in Python alle Daten standardmäßig öffentlich zu sein, so dass Sie Getter und Setter nicht wie in Java verwenden müssen.

persönlich finde ich eine Python-Klasse eher ein C-Struct mit einigen zusätzlichen Features, wobei Java alles in eine Klasse geworfen wird.

    
Space Bear 02.06.2016 19:23
quelle
-2

2.) Python ist eine Hochsprache. wo Java ist mehr Mid-High im Raten. irgendwie neu in Java.

Python geht nach Leerraum, wo Java mehr Formatierung erfordert.

3.) Der self-Parameter kann entfernt werden. Ersetzen Sie mit was auch immer Sie es nennen möchten.

    
Kirikku 02.06.2016 19:25
quelle

Tags und Links