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)