Hallo,
bin neu im Forum und auch neu in Python. Habe bislang in verschiedenen Sprachen objektorientiert und auch nicht programmiert.
Ich frage mich nach dem Unterschied von:
from hardware import bootstick
from hardware.bootstick import BootStick
Bootstick ist die Klasse und bootstick das Skript. Importiere ich nicht automatisch die Klasse, wenn ich das Skript importiere.
Außerdem warum sind hier 2 Klammern?
self.monitor = sramlink.get_version("0.7.0")(bs)
Freue mich auf Erklärungen.
neu in Python und Syntax etc. Fragen
@INIING: Du importierst das was Du auch tatsächlich importierst. Wenn Du ein Modul importierst, dann ist auch nur das Modul unter einem Namen in den importierenden Namensraum importiert worden. Über das Modul kannst Du dann auf die Klasse darin (oder andere an Namen gebundene Werte) zugreifen. Wenn Du dagegen Namen aus Modulen importierst, dann sind die Objekte die im Modul an diesen Namen gebunden werden auch im importierenden Namensraum an diesen Namen gebunden Oder an einen anderen wenn man ``as`` verwendet..
Klammern rechts von einem Ausdruck bedeuten einen Aufruf des Objekts das durch den Ausdruck beschrieben wird. In dem Beispiel wird also das Objekt das der Ausdruck ``sramlink.get_version`` ergibt mit dem Argument '0.7.0' aufgerufen und dieser Aufruf gibt wieder etwas aufrufbares zurück was dann mit dem Argument `bs` aufgerufen wird. Das Ergebnis davon wird dann `self.monitor` zugewiesen. Funktione und Methoden, oder allgemein aufrufbare Objekte sind in Python Werte wie jeder andere auch. Die kann man als Argumente übergeben und als Rückgabewerte bei Aufrufen erhalten. Und in Datenstrukuren speichern. Eben ganz normale Werte. Und alles was man an einen Namen binden kann ist in Python ein Objekt und damit ein Wert. Das schliesst neben Funktionen und Methoden unter anderem auch Module und Klassen ein.
Klammern rechts von einem Ausdruck bedeuten einen Aufruf des Objekts das durch den Ausdruck beschrieben wird. In dem Beispiel wird also das Objekt das der Ausdruck ``sramlink.get_version`` ergibt mit dem Argument '0.7.0' aufgerufen und dieser Aufruf gibt wieder etwas aufrufbares zurück was dann mit dem Argument `bs` aufgerufen wird. Das Ergebnis davon wird dann `self.monitor` zugewiesen. Funktione und Methoden, oder allgemein aufrufbare Objekte sind in Python Werte wie jeder andere auch. Die kann man als Argumente übergeben und als Rückgabewerte bei Aufrufen erhalten. Und in Datenstrukuren speichern. Eben ganz normale Werte. Und alles was man an einen Namen binden kann ist in Python ein Objekt und damit ein Wert. Das schliesst neben Funktionen und Methoden unter anderem auch Module und Klassen ein.
so, hoffe mal, dass ich das richtig verstanden habe und da hatte ich schon gedacht, dass der amerikanische Kollegen den Neuen (mich) damit verarschen möchte, dass in Python alles Objekte sind. 
Danke für deine Antwort.
Wohlmöglich tauchen die Tage dann nochmals ein paar Fragen auf.
Stelle ich dann hier.

Danke für deine Antwort.
Wohlmöglich tauchen die Tage dann nochmals ein paar Fragen auf.
Stelle ich dann hier.

- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Willkommen zu Python und hier im Forum!
Die Python Dokumentation hat ein Tutorial, das du vielleicht durcharbeiten solltest. Zu den weiteren Fragen: Wenn du mit "hier" meintest in diesem Thread, dann bitte nicht. Stelle sie in ihrem eigenen Thread. Das hilft anderen Leuten, die eventuell vor dem gleichen Problem stehen.
Die Python Dokumentation hat ein Tutorial, das du vielleicht durcharbeiten solltest. Zu den weiteren Fragen: Wenn du mit "hier" meintest in diesem Thread, dann bitte nicht. Stelle sie in ihrem eigenen Thread. Das hilft anderen Leuten, die eventuell vor dem gleichen Problem stehen.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte