auf instanznamen zugreifen

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
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Und wenn es reicht, lokal und global zu schauen, geht auch sowas:

Code: Alles auswählen

In [1]: testname = "foobar"

In [2]: from collections import defaultdict

In [3]: d = defaultdict(list)

In [4]: for k, v in globals().copy().iteritems():
   ...:     d[id(v)].append(k)
   ...:     
   ...:     

In [6]: print repr(d[id(testname)])
['testname']

In [7]: print repr(d[id(d)])
['d']
id() muss man hier verwenden, da das Dictionary ja explizit nach Identität und nicht nach Wert (hash) orden soll. Lokal dann natürlich locals().
Antworten