2016-08-24 2 views
0

Gibt es irgendwelche Regeln (oder werde ich auf irgendwelche Probleme stoßen), wenn ich die Parameter einer Funktion genauso benenne wie die Variable, die ich an sie übergeben werde? Zum Beispiel in Python:Benennen Parameter die gleiche wie die Variable an sie weitergegeben?

def foo(param): 
    pass 

param = 2 

foo(param) 

Im ziemlich begrenzt Programmierung ich getan habe, habe ich in irgendwelche Probleme tun dies nicht lief. Werde ich in bestimmten Sprachen Probleme bekommen? Ist das in Ordnung, oder ist es eine Übung, die vermieden werden muss?

Antwort

1

Das "Problem" in diesem speziellen Fall ist, dass der Name des Funktionsparameters die äußere param Variable überschattet; Sie können nicht (implizit) auf das globale param mehr verweisen, da innerhalb Ihrer Funktion param als eine lokale Variable definiert ist.

Aber das ist wirklich so, wie es sein sollte. Ihre Funktion sollte sich nur um die Parameter kümmern, die sie lokal deklariert, und nicht um implizite globale Variablen. Umgekehrt sollte sich ein Aufrufer einer Funktion nicht um irgendetwas kümmern müssen, was in einer Funktion vor sich geht. Das Benennen einer Variablen wie ein Parameter für eine Funktion hat für den Aufrufer keine Folgen und sollte für die Funktion selbst keine Rolle spielen.

Also, nein, hier gibt es absolut kein Problem.

Verwandte Themen