Anfängerfragen: Abkürzungen usw.

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
m0ps1234
User
Beiträge: 40
Registriert: Freitag 13. März 2009, 08:57

Freitag 13. März 2009, 09:15

Hallo zusammen,
ich bin gerade dabei Python zu lernen.
Nun hätte ich einige Fragen zu Abkürzungen usw:

-habe vor mir ein classObj(blablup, **dict(argList))
Nur weiß ich nicht, was die beiden Sterne vor dem dict bewirken. Bzw was der Stern allgemein bewirkt.
Das Ganze wird dem Konstruktor übergeben, der in diesem bis auf das blablup die weiteren Argumente mit "None" deklariert.

-Zum anderen lese ich des öfteren:
msg = "blabla: %s" % irgendeinObjekt/Wert
Wird hier einfach das %s durch das Objekt/den Wert ersetzt?

-Funktion mit 2 return-Werten:
Ich habe zB soetwas: a, b = FunktionMitZweiReturnWerten()
Wird dann der erste Returnwert in a und der zweite in b gespeichert?

Leider konnte ich im Forum/Internet nichts dazu finden (zwecks Eingabeproblemen)

Grüße
Matthias

--evtl to be continued...--
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Freitag 13. März 2009, 09:58

m0ps1234 hat geschrieben:-habe vor mir ein classObj(blablup, **dict(argList))
Nur weiß ich nicht, was die beiden Sterne vor dem dict bewirken. Bzw was der Stern allgemein bewirkt.
http://openbook.galileocomputing.de/pyt ... .htm#t2t34
m0ps1234 hat geschrieben: -Zum anderen lese ich des öfteren:
msg = "blabla: %s" % irgendeinObjekt/Wert
Wird hier einfach das %s durch das Objekt/den Wert ersetzt?
Im Prinzip ja.
``print "%s" % obj`` ist das gleiche wie ``print str(obj)`` bzw. ``print obj``
Ganz genau genommen wird das %s mit demReturn-Wert von obj.__str__() ersetzt
m0ps1234 hat geschrieben: -Funktion mit 2 return-Werten:
Ich habe zB soetwas: a, b = FunktionMitZweiReturnWerten()
Wird dann der erste Returnwert in a und der zweite in b gespeichert?
Es gibt keine Funktion mit zwei Return-Werten. Statt dessen wird ein tuple(a, b) zurückgegeben. Dieses tuple wird dann auf diese Weise auf zwei Variablen getrennt.
Aber im Prinzip meinst du schon das richtige :wink:
DasIch
User
Beiträge: 2450
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Freitag 13. März 2009, 15:44

  • 1.Klassennamen sollten mit einem Großbuchstaben beginnen, siehe PEP 8.

    2.* vor einer Sequenz nutzt man um jedes Element dieser Sequenz einzeln zu übergeben, bei ** übergibt man die Wertepaare als Keywords.

    3.Strings in Python überladen den Modulo Operator so dass man damit festgelegte Platzhalter überschreiben kann. Genaueres dazu findet sich in der Doku.

    4.Das hat nichts mit Funktionen zu tun sondern ist einfach unpacking und geht mit jeder Sequenz.

    Code: Alles auswählen

    >>> a, b = ('foo', 'bar')
    >>> a
    'foo'
    >>> b
    'bar'
Du solltest übrigens dringend das Tutorial durcharbeiten. Das sind Grundlagen.
m0ps1234
User
Beiträge: 40
Registriert: Freitag 13. März 2009, 08:57

Donnerstag 19. März 2009, 12:26

Hätte noch eine Frage:
was bedeuten nach einem "print" die zwei ">>"?

Grüße
Antworten