Yo antes tenía el mismo problema, pero mi solución fué difícil al comienzo, ahora me hes más fácil, la solución para mi es utilizar una clase
class en vez de una o más funciones
def.
Creo que sería lo mejor.
Aquí te dejo un ejemplo simple:
Código Python:
Ver originalclass CompartirVariables: # Nombre de la clase
def PrimeraFuncion(self): # Nombre de la funcion "PrimeraFuncion"
global hola1 # Aqui se define la variable "hola1" como global, esto es para que la "SegundaFuncion" pueda acceder a ella
hola1 = "Hola mundo" # Se asigna un valor a "hola1"
self.hola2 = "Hola mundo 2" # Esto tambien es muy util
self.SegundaFuncion() # Aqui se llama a la funcion "SegundaFuncion()"
def SegundaFuncion(self): # Nombre de la funcion "SegundaFuncion"
print hola1 # hola1 conserva el valor asignado en la funcion "PrimeraFuncion"
print self.hola2 # self.hola2 conserva el valor asignado en la funcion "PrimeraFuncion"
NombreObjeto = CompartirVariables() # Aca se crea el objeto
NombreObjeto.PrimeraFuncion() # Aqui se llama a la funcion "PrimeraFuncion"
raw_input() # Este metodo es para que la consola no se cierre.