2011-07-13 4 views
1

ce que je pourrais définir une variable dans un champ de fonction, sachant que j'ai envoyé cette variable comme un paramètre ..Comment définir la variable dans une portée de fonction?

Voir l'exemple:

def test(param): 
    param = 3 

var = 5 
test(var) 

print var 

Je veux que la valeur imprimée soit 3, mais il n » T arrive. Comment puis-je faire cela?

Merci ..

+0

Vous trouverez plusieurs options [ici] (http://docs.python.org/faq/programming.html#how-do-i-write- a-function-with-output-parameters-call-by-reference) – Howard

Répondre

0

La déclaration globale vous permet d'attribuer aux variables déclarées en dehors du champ d'une fonction.

var = 5 
def test(): 
    global var 
    var = 3 

test() 
print var 

Cependant, j'ai trouvé que j'ai rarement besoin d'utiliser cette technique. Le modèle de programmation fonctionnelle rend cela moins important.

+0

Des choses comme celles-ci sont déconseillées et inutiles même dans une programmation procédurale simple et directe. – delnan

+1

Bien sûr. Jonatas a demandé comment le faire, pas s'il devrait le faire. Pour tout ce que nous savons, il essaie de gagner un pari ou d'écrire délibérément Python obfusqué pour le plaisir. – wberry

2

Vous pouvez retourner la valeur de param comme ceci:

def test(param) 
    param = 3 
    return param 

var = 5 
var = test(var) 

Ou vous pouvez utiliser une variable globale.

2

Mieux vaut utiliser return qu'un global:

def test(param): 
    param = 3 
    return param 

var = 5 
var = test(var) 

print var 
Questions connexes