2017-08-29 2 views
0

Aus einem C++ - Hintergrund kommend, habe ich in einigen Situationen Schwierigkeiten, Python zu verstehen. Zum Beispiel in einer GUI-Anwendung mit Tkinter, könnten Sie haben:Python-Syntax/Notation verstehen

button = Button (master, option=value, ...) 

Ich weiß, was der Code tut (ein Button-Objekt erstellen), aber ich versuche, die genauen Details herauszufinden. Ich vermute, dass button wird ein Zeiger auf ein Button Objekt, und Button (master, option=value, ...) ist ein Aufruf an den Konstruktor, aber es ist schwer zu sehen, da ich an explizite Datentypen und die new-Operator verwendet werden. Meine Vermutung könnte jedoch völlig falsch sein.

+0

Haben Sie versucht, die ersten paar Kapitel eines Python-Buchs zu bearbeiten, oder haben Sie ein Python-Tutorial durchgearbeitet? Nichts in Ihrer Frage ist TKinter-spezifisch. –

Antwort

0

ging ich durch mehrere Führer und Dokumente zu diesem Thema vor dieser Frage, aber stolperte nur über die Antwort here:

„Um eine Drucktaste in einem Top-Level-Fenster oder Frame genannt Eltern zu erstellen:

w = tk.Button(parent, option=value, ...) 

Der Konstruktor gibt das neue Schaltflächen-Widget zurück. "

Es scheint also nur ein normales Objekt (Nicht-Zeiger) und der Konstruktor gibt ein Button Objekt zurück.

+2

Alle Namen in Python sind Verweise (Zeiger) auf Objekte, daher ist Ihre Beschreibung in der Frage korrekter. – cco

+0

Also gibt es keine Nicht-Referenztypen in Python? –

+2

Einige Typen sind unveränderlich, wodurch sie als Werttypen fungieren, aber alle Namen in Python sind Verweise auf Objekte. Erweiterungsmodule können effizientere Speichermechanismen bereitstellen (z. B. C- oder Fortran-artige gepackte Wertefelder in Numpy), aber der Python-Interpreter behandelt nur Referenzen. – cco