-je utiliser la fonction vars() pour la première fois, et a remarqué ce comportement:Comment retourner les variables locales ([objet]) à partir de la fonction?
nodes = ['one', 'two', 'three']
for node in nodes:
vars()[node + '_'] = 'some calc ' + node
vars()[node] = vars()[node + '_']
print one
Avec cet extrait des sorties Python some calc one
comme prévu, mais si je l'utilise dans la fonction comme ceci:
def main():
nodes = ['one', 'two', 'three']
for node in nodes:
vars()[node + '_'] = 'some calc ' + node
vars()[node] = vars()[node + '_']
print one
main()
il délivre en sortie NameError: global name 'one' is not defined
vars() est dict:
{'node': 'three', 'three_': 'some calc three', 'two': 'some calc two', 'one': 'some calc one', 'two_': 'some calc two', 'three': 'some calc three', 'nodes': ['one', 'two', 'three'], 'one_': 'some calc one'}
Maintenant, je voudrais savoir ce qui se passe en cette fonction est bien documenté et je ne peux pas trouver par exemple comment retourner ces variables si la fonction à l'intérieur
Je viens de déclarer une nouvelle variable dict, et assigné des valeurs de vars() dans: d [node] = vars() [node]; retour d – romor