wie findet ihr diese Struktur?
Code: Alles auswählen
def berechne_etwas(zahl):
return zahl * 2 / 3
zahl = input("Welche Zahl hätten Sie gern? ")
print(f"Das Ergebnis lautet: {berechne_etwas(zahl)}")
Na klar, verstehe ich, da gibt es eine globale Variable namens "zahl" und nun auch eine lokale Variable (Parameter) mit demselben Namen.warning:
redefined-outer-name: Redefining name 'zahl' from outer scope
Finde ich aber in diesem Fall gar nicht mal so tragisch, weil sie ja auch beide den gleichen Wert haben und diesen im Verlauf nicht mal verändern.
Wenn ich hingegen plötzlich eine ganz andere Sache berechnen würde und mit diesem selben Namen speichern würde, dann verstehe ich die Kritik.
Ich habe dann noch eine andere Struktur probiert, um den Linter ruhig zu stellen:
Code: Alles auswählen
def berechne_etwas(z):
return z * 2 / 3
zahl = input("Welche Zahl hätten Sie gern? ")
print(f"Das Ergebnis lautet: {berechne_etwas(zahl)}")
Also verstehe ich das so, dass der Linter mir Namen mit mindestens drei Zeichen empfiehlt.invalid-name: Argument name "z" doesn't conform to '[a-z][a-z0-9_]{2,30}$' pattern
Gut, das kann ich nachvollziehen. Finde "z" ja selber auch nicht sehr toll.
Sehe aber auch nicht ein, mir einen dreibuchstabigen Namen für dieselbe Sache auszudenken, nur weil ich mal eine Funktion benutzen möchte.
Also wie handhabt ihr das? Überschreibt ihr einfach mit demselben Namen? Noch eine andere Lösung?
Ich hoffe mein Beispiel ist nicht zu abstrakt.