Ich habe 2 Funktionen fun1
und fun2
, die als eine Zeichenfolge bzw. eine Zahl als Eingaben nehmen. Die beiden erhalten auch als Eingabe die gleiche Variable a
. Dies ist der Code:Wie teilt man Variablen zwischen Funktionen in Python?
a = ['A','X','R','N','L']
def fun1(string,vect):
out = []
for letter in vect:
out. append(string+letter)
return out
def fun2(number,vect):
out = []
for letter in vect:
out.append(str(number)+letter)
return out
x = fun1('Hello ',a)
y = fun2(2,a)
Die Funktionen führen einige unsinnige Operationen aus. Mu Ziel wäre es, den Code so neu zu schreiben, dass die Variable a zwischen den Funktionen geteilt wird, so dass sie sie nicht mehr als Eingabe nehmen.
Eine Möglichkeit, die Variable a
als Eingabe zu entfernen, wäre, sie innerhalb der Funktionen selbst zu definieren, aber das ist leider nicht sehr elegant. Können Sie mir einen möglichen Weg vorschlagen, um mein Ziel zu erreichen?
Die Funktionen sollten auf dieselbe Weise funktionieren, aber die Eingabeargumente sollten nur die Zeichenfolge und die Nummer sein (fun1(string)
, fun2(number)
).
Sie sind auf halbem Wege die objektorientierte Programmierung neu entdecken. – chepner
Das Innere der Funktion kann "a" "sehen". Probieren Sie einfach 'for letter in a:' –