PDA

View Full Version : [PYTHON] passaggio variabili tra funzioni


snowx
27-02-2012, 11:23
Ciao, sto provando a passare una variabile tra due def ma non saprei come fare, ho provato e mettere le due def in una classe ed usare global ma niente, ho provato senza la classe ma il risultato è lo stesso


class prova:

def funz1(self,q,b):
global lista
lista = []
lista += [q]
lista += [a]

def funz2(self):
return str(lista.pop())


la lista risulta sempre vuota, come mai? come faccio a non averla vuota?

cdimauro
27-02-2012, 23:25
C'è un errore nel codice:
>>> class prova:
...
... def funz1(self,q,b):
... global lista
... lista = []
... lista += [q]
... lista += [a]
...
... def funz2(self):
... return str(lista.pop())
>>> o = prova()
>>> o.funz1(1, 2)
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
o.funz1(1, 2)
File "<pyshell#0>", line 7, in funz1
lista += [a]
NameError: global name 'a' is not defined
Il nome del parametro è b, non a.

Con questa correzione funzione tutto:
>>> class prova:
...
... def funz1(self,q,b):
... global lista
... lista = []
... lista += [q]
... lista += [b]
...
... def funz2(self):
... return str(lista.pop())
>>> o = prova()
>>> o.funz1(1, 2)
>>> o.funz2()
0: '2'
>>>

snowx
27-02-2012, 23:47
si me ne ero accorto, ma non sapevo come chiudere il post, grazie sempre molto disponibile :D