Ich habe eine Weile nach meiner Frage gesucht, aber nichts Nützliches gefunden. Meine Frage ist ziemlich einfach und unkompliziert.

Ist es vorzuziehen oder vielleicht "pythonisch", denselben Namen für eine bestimmte Variable zu verwenden, die in verschiedenen Funktionen, aber mit demselben Zweck angezeigt wird?

Beispielsweise:

def first_function():
    pt = win.getMouse() # This waits for a mouseclick in a graphical window.

    if blabla.button.clicked(pt):
        second_function()

def second_function():
    pt = win.getMouse() 

    if whatever.button.clicked(pt):
        third_function()

Ist es wichtig, ob die Variablenreferenz (pt) auf win.getMouse() in second_function() denselben Namen hat wie die Variable in first_function()? Oder sollte die Variable pt in der zweiten Funktion etwas anderes heißen?

4
Bondenn 10 Dez. 2013 im 15:31

3 Antworten

Beste Antwort

Namen in Funktionen sind lokal ; Verwenden Sie sie nach Belieben wieder!

Mit anderen Worten, die Namen in einer Funktion haben keine Beziehung zu Namen in einer anderen Funktion. Verwenden Sie gute, lesbare Variablennamen und sorgen Sie sich nicht um Konflikte zwischen Namen.

12
Martijn Pieters 10 Dez. 2013 im 11:31

Es geht nicht um "Pythonic" oder nicht. Bei der Programmierung möchten Sie immer, dass Ihre Variablen eine Bedeutung haben, wenn derselbe Name in verschiedenen Funktionen vorkommt, was bedeutet, dass sie Dinge mit demselben Zweck oder denselben Parametern ausführen. Es ist in Ordnung, dieselben Namen in verschiedenen Funktionen zu verwenden, solange sie nicht kollidieren und Probleme verursachen

1
Lazybeem 10 Dez. 2013 im 11:34

In einer Funktion definierte Variablen haben einen Funktionsumfang und sind nur im Hauptteil der Funktion sichtbar.

Siehe: http://en.wikipedia.org/wiki/Scope_(computer_science)#Python für eine Erklärung der Scoping-Regeln von Python.

1
James Mills 10 Dez. 2013 im 11:39