Hallo zusammen
Welche Bedeutung hat eigentlich genau der Stern (*) in Verbindung mit Variablen? Ist das eine Art Pointer-Eigenschaft?
Gruss
Christoph
Bedeutung von * in Python
Ist mir nicht ganz klar, was du meinst... meinst du bei Funktionsdefinitionen?
merkst du was? Du darfst dann x beliebig viele Werte übergeben, die alle in ein Tupel zusammengefasst werden...
Code: Alles auswählen
>>> def f(*x):
print x
>>> f(1)
(1,)
>>> f(1,2)
(1, 2)
>>> f(1,2,3)
(1, 2, 3)
Ah. Danke.
Ich hab mich schon immer über solche Konstrukte gewundert, wie sie z.B. wxGlade produziert. Hab mir aber nie viel Gedanken darüber gemacht, sondern es erstmal hingenommen.
Der Stern ist mir nun klar. Was bewirkt der Doppelstern genau?
BTW ich hab sowas bis jetzt immer durch die Übergabe einer Liste umgangen...
Ich hab mich schon immer über solche Konstrukte gewundert, wie sie z.B. wxGlade produziert. Hab mir aber nie viel Gedanken darüber gemacht, sondern es erstmal hingenommen.
Code: Alles auswählen
class MyFrame(wxFrame):
def __init__(self, *args, **kwds):
BTW ich hab sowas bis jetzt immer durch die Übergabe einer Liste umgangen...
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Christopy,
Also bei ** kannst Du beliebig viele Parameter mit Namen übergeben. Diese werden in ein Dictionary umgewandelt mit den Namen als Keys.
Gruß
Dookie
Code: Alles auswählen
def f(**kw):
print kw
for key, value in kw.items():
print "%s = %s" % (str(key), str(value))
f(erster="Hallo", zweiter="_", nocheiner="Welt")
Gruß
Dookie