kurze Frage: warum funktioniert folgender Code nicht und wie kann ich ihn schnell und einfach umgehen?
Code: Alles auswählen
def function():
for i in range(5):
var_i = ...
return var_1, var_2, ..., var_4
Frederik
Code: Alles auswählen
def function():
for i in range(5):
var_i = ...
return var_1, var_2, ..., var_4
Code: Alles auswählen
def function():
for i in range(5):
variable = ...
return var1able, var2able, ..., var4able
Aber eine geniale Idee für eine esotherische Programmiersprache - dynamische Namen statt Listen o.ä.Leonidas hat geschrieben:Code: Alles auswählen
def function(): for i in range(5): variable = ... return var1able, var2able, ..., var4able
Code: Alles auswählen
var = []
for i in range(5):
var.append(...was auch immer...)
Code: Alles auswählen
var = []
for i in range(5):
var[i] = ...was auch immer... #error: den index gibt es nicht!
Code: Alles auswählen
var = [None for i in range(0, 5)]
for i in range(5):
var[i] = ...was auch immer...
Code: Alles auswählen
def function():
for i in xrange(3):
globals().update({'var_%s' % i: i})
return var_0, var_1, var_2
print function()
Code: Alles auswählen
def function():
print locals()
for i in xrange(3):
locals().update({'var_%s' % i: i})
print locals()
return var_0, var_1, var_2
print function()
In der 2.6 Doku steht Entsprechendes:{}
{'i': 2, 'var_2': 2, 'var_1': 1, 'var_0': 0}
Traceback (most recent call last):
File "<stdin>", line 10, in <module>
File "<stdin>", line 8, in function
NameError: global name 'var_0' is not defined
Code: Alles auswählen
>>> for i in range(10):
exec "var_%s = %s" % (i, i)
>>> var_6
6
Code: Alles auswählen
var = [None] * 5
# ...
Code: Alles auswählen
var = [...was auch immer... for i in xrange(5)]