Was ist die pythonic Weg, um Schattenbildung zu vermeiden Variablen?

Oft habe ich das folgende code führt entweder zur Variablen Abschattung oder zu einer Vervielfachung der lokalen Variablen

def whenadult(age):
    return 18 - age

age = 5
needtowait = whenadult(age)

age hat die gleiche logische Rolle, sowohl bei der an die Funktion übergeben wie in der Haupt-code, so möchte ich vermeiden das so etwas wie l_age im whenadult.

Was ist der pythonic Weise zu lösen, die "shadowing vs. variable Multiplikation" dilemma?

UPDATE: nach einigen Kommentaren möchte ich deutlich machen, dass ich war auf der Suche nach einem Python-best practice (im Gegensatz zu lokalen vs. globalen Variablen scope)

  • Ich bin verwirrt - warum würden Sie brauchen, um erstellen Sie eine l_age variable in der whenadult Funktion?
  • Dein problem nicht, führt zu keiner Vermehrung von lokalen Variablen, und ich bin mir auch nicht sicher, wie Sie es könnte.
  • (Ich werde überspringen Sie die "downvote ohne Kommentar" schimpfen) -- das, was ich meinte, ist die Schaffung einer neuen benannten lokalen variable ( l_age ), um Schattenbildung zu vermeiden age im Gegensatz zur Wiederverwendung der gleichen Namen.
  • Vermutlich wer downvoted Sie Tat dies auf der Grundlage einer von den beiden vorhandenen Kommentaren (oder auf der anderen eine, die verwendet werden, um es, dass jemand später gelöscht). In diesem Fall, indem ein "was er sagte" Kommentar nicht wirklich etwas hinzufügen.
InformationsquelleAutor WoJ | 2013-11-11
Schreibe einen Kommentar