code Exemple d'un module:Comment utiliser les paramètres nommés et les variables globales avec le même nom dans Python?
somevar = "a"
def myfunc(somevar = None):
# need to access both somevars ???
# ... if somevar was specified print it or use the global value
pass
if __name__ == '__main__':
somevar = "b" # this is just for fun here
myfunc("c")
myfunc() # should print "a" (the value of global variable)
Il y a au moins deux raisons d'utiliser le même nom: l'éducation (pour apprendre à utiliser globals locales /) et de l'utilisation des modules.
Disons que ce code fait partie de votre module: mymodule
et que vous voulez faire des choses comme:
import mymodule
mymodule.samevar = "default"
...
mymodule.myfunc(somevar = "a")
...
mymodule.myfunc()
Comme vous pouvez l'imaginer dans cet exemple est simplifiée, imaginez que somevar
paramètre est l'un des nombreux en option paramètres et que myfunc est appelé dans de nombreux endroits.
Avez-vous essayé les mots-clés 'global' et 'local'? – NickHalden
si le deuxième appel imprime vraiment "C", ou devrait-il être "a" à la place? – theomega
@theomega: merci d'avoir remarqué cela, j'ai corrigé l'exemple. – bogdan