Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Acceder a una variable desde una función
#1
Hola, yo tengo esta función que la quiero utilizar por medio de modulo, pero la variable "nombre" de la funcion la tengo definida con anterioridad en el codigo en el que estoy utilizando la funcion... Hay una forma de hacer que la variable "nombre" sea la misma tanto para mi codigo como para la funcion? y si no se puede ¿Hay otra alternativa?
Código:
def f_mensasaje(mensaje):
    continuar = True
    while continuar:
        es_mensaje = str(input("¿Quieres seguir escribiendo mensajes? (S/N)"))
        if es_mensaje == "S" or es_mensaje == "s" or es_mensaje == "":
            mensaje_n = print("Publica tu mensaje")
            mensaje = input()
            print("----------------------------------------------------------------------------------")
            print(nombre, ": ", mensaje)
            print("----------------------------------------------------------------------------------")
            return f_mensasaje(mensaje)
        elif es_mensaje == "N" or es_mensaje == "n":
            print("Gracias por usar REDOS ^^")
            continuar = False
            return continuar
        elif es_mensaje != "N" or es_mensaje != "n" or es_mensaje != "s" or es_mensaje != "S":
            return f_mensasaje(mensaje)
        else:
            continuar = False
            return continuar
Responder
#2
Hola, bienvenido.

La mejor opción que tenés es pasar el valor de "nombre" como estás pasando "mensaje", o sea, como un argumento. Crear una función que espere que antes de ser llamada haya definida una variable determinada es una muy mala práctica (va en contra del concepto de función, que tiene que realizar una tarea en base a los argumentos), además de difícil de implementar en casos como este (si entendí bien), donde la función está definida en un archivo y la variable en otro.

Saludos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)