Referenz auf Variable an Funktion übergeben?

"Martin v. Löwis" martin at v.loewis.de
Mon Jan 10 16:23:58 EST 2005


Torsten Mohr wrote:
> Geht sowas auch in Python?

Nicht direkt. Es ist üblich, dass Funktionen, die Ergebnisse
(Rückgabewerte) liefern, dies mittels return tun:

def vokale(string):
     result = [c for c in string if c in "aeiou"]
     return "".join(result)

x = "Hallo, Welt"
x = vokale(x)

Falls man mehrere Strings als ändern will, hat man halt
mehrere Rückgabewerte

def welt_anhaengen(a, b):
     return a+"Hallo", b+"Welt"

x = "foo"
y = "bar"
x,y = welt_anhaengen(x,y)

> Geht sowas vielleicht mit weakref?

Nein. Wenn Du unbedingt das Argument ändern willst, musst
Du ein Objekt übergeben, das man ändern kann, etwa eine
Liste, die nur einen String enthält.

def welt_anhaengen_2(a,b):
     a[0] += "Hallo"
     b[0] += "Welt"

a = ["foo"]
b = ["bar"]
welt_anhaengen_2(a,b)

Ciao,
Martin

P.S. comp.lang.python ist eigentlich auf Englisch.



More information about the Python-list mailing list