Seite 1 von 1

Den Namen der Übergabeparameter rausfinden?

Verfasst: Dienstag 17. Oktober 2006, 12:46
von pythonich
Ich hane folgenden Quellcode:
eine Funktion:
def test(a):
print a

und der Aufruf:
i = 7
test(i)

Meine frage ist, ob ich in Python irgendwie den Namen der Variable i in der Funktion test rausfinden kann. Ich will folgendes realisieren:

def test(a):
print 'Variable' + NameDerVariable + ' = ' + a

dafür fehlt mir praktisch den Namen der Variable i

Verfasst: Dienstag 17. Oktober 2006, 12:59
von CM
Hoi,

von mir noch ein nachträgliches: Herzlich willkommen im Forum!
Aber: Wozu soll das bitte gut sein? Also, ich habe es noch nicht umgesetzt gesehen - was womöglich nicht viel heißen will.
Je nachdem was Du tatsächlich erreichen willst, hilft es vielleicht ein Dictionary zu übergeben - damit erhälst Du gleich Name:Wert-Paare und kannst auf Name und Wert zugreifen.

HTH
Christian

Verfasst: Dienstag 17. Oktober 2006, 13:17
von Blattlaus
Sorry, ich muss fragen, ich sehe nämlich so garkeinen Sinn darin: Wieso zu Hölle wilslt du das? :D

-----

Und jetzt zu Antwort: Nein
Weil: Wenn du die Variable 'i' hast, dann ist 'i' nichts weiter als ein Zeiger (ich nenn es jetzt mal so, wie in C) auf eine Stelle im Speicher in der der Inhalt dieser Variablen liegt.
Rufst du jetzt die Funktion 'test' auf, dann wird eine Kopie dieser Speicherstelle erzeugt und ein neuer Zeiger darauf erstellt und in 'a' gespeichert. Das ganze ist also völlig seperat von der Orginalvariable. Daher ist das was du willst nicht möglich.

Und außerdem ist es völlig unnötig. Wozu sollte man wissen wollen wie das Orginal einer übergebene Variable hieß?

/: Achso, falls du es doch brauchst solltest du das ganze umschreiben ;)

Verfasst: Dienstag 17. Oktober 2006, 16:54
von Leonidas
Du kannst es ja immer noch so machen:

Code: Alles auswählen

In [12]: def c(**kwargs):
   ....:     print kwargs
   ....:
In [13]: c(i='deinwert')
{'i': 'deinwert'}