Bruke en strengvariabel som variabelnavn

Jeg har en variabel med en streng tilordnet, og jeg ønsker å definere en ny variabel basert på denne strengen.

foo = "bar"
foo = "something else"   

# What I actually want is:

bar = "something else"

Du kan bruke exec til det:

>>> foo = "bar"
>>> exec(foo + " = 'something else'")
>>> print bar
something else
>>> 
Kommentarer (4)

Du vil være mye mer fornøyd med å bruke en ordbok i stedet:

my_data = {}
foo = "hello"
my_data[foo] = "goodbye"
assert my_data["hello"] == "goodbye"
Kommentarer (4)

Du kan bruke setattr.

name  = 'varname'
value = 'something'

setattr(self, name, value) #equivalent to: self.varname= 'something'

print (self.varname)
#will print 'something'

Men siden du må informere et objekt for å motta den nye variabelen, tror jeg dette bare fungerer inne i klasser.

Kommentarer (1)