Saltar al contenido

¿Cómo puedo compartir una variable entre funciones en Python?

Solución:

Orientado a objetos la programación ayuda aquí:

class MyClass(object):
    def __init__(self):
        self.a = ['A','X','R','N','L']  # Shared instance member :D

    def fun1(self, string):
        out = []
        for letter in self.a:
            out.append(string+letter)
        return out

    def fun2(self, number):
        out = []
        for letter in self.a:
            out.append(str(number)+letter)
        return out

a = MyClass()
x = a.fun1('Hello ')
y = a.fun2(2)

Una alternativa al uso de clases: puede usar el global palabra clave para utilizar variables que se encuentran fuera de la función.

a = 5
def func():
    global a
    return a+1

print (func())

Esto imprimirá 6.

Pero las variables globales deben evitarse tanto como sea posible.

Ya que a se define fuera del alcance de la función y antes las funciones están definidas, no es necesario que las alimente como argumento. Simplemente puede usar a.

Python primero buscará si la variable está definida en el alcance de la función, y si no, busca fuera de ese alcance.

a = ['A','X','R','N','L']

def fun1(string):
    out = []
    for letter in a:
        out.append(string+letter)
    return out

def fun2(number):
    out = []
    for letter in a:
        out.append(str(number)+letter)
    return out

x = fun1('Hello ')
y = fun2(2)

En este caso, también puede reescribir sus funciones en listas por comprensión más elegantes:

a = ['A','X','R','N','L']

def fun1(string):
    return [string+letter for letter in a]

def fun2(number):
    return [str(number)+letter for letter in a]

x = fun1('Hello ')
y = fun2(2)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *