Python: Funktion und variable mit gleichen Namen

Meine Frage ist warum kann ich nicht die Funktion erneut aufrufen? Oder: wie macht man das?

Angenommen ich habe diese Funktion:

def a(x, y, z):
 if x:
     return y
 else:
     return z

und ich rufe es mit:

print a(3>2, 4, 5)

Bekomme ich 4.

Aber vorstellen, dass ich eine variable deklarieren, die mit dem gleichen Namen, die Funktion, die (durch Fehler):

a=2

Nun, wenn ich versuche zu tun:

a=a(3>4, 4, 5)

oder:

a(3>4, 4, 5)

Bekomme ich diese Fehlermeldung: "TypeError: 'int' - Objekt ist nicht aufrufbar"

Es ist nicht möglich, weisen Sie die variable 'a' in der Funktion?

  • gut, der Fehler erklärt sich selbst. Sie haben neu definiert a eine int statt einer function; Jetzt a ist eine variable (anstelle der Funktion); folglich ist die Folge
  • Ich bin mir nicht sicher, was Sie Fragen. Sind Sie Fragen, warum kannst du nicht eine Nummer?
  • Nein, was ich nur wissen will ist: wenn es möglich ist, nach zuweisen, "a=2", es ist ein Weg, um Punkt "a" erneut, um die Funktion.
  • Während dies scheint offensichtlich für die Leute, die schreiben, Python ganzen Tag, aus einem C# - hintergrund das ist ärgerlich. Ich kann ein "private" variable mit dem Namen self.a, wollen aber eine 'öffentliche' Funktion, die aufgerufen wird a(units='g') konvertiert die Einheiten, die auf die private variable 'a' zu, was der Anrufer will. Statt dessen finde ich, muss ich schreiben, meine 'öffentliche' Funktion als def format_a(units='g'):
  • Gute Frage, am Ende, von den Antworten, die, im Gegensatz zu anderen Sprachen, die Sie nicht haben kann eine getter-wie def x(self): return self.x Sie brauchen, um den Namen der getter-anders, z.B. get_x(self). Ich kam hierher, weil Sie nach eine Umgestaltung meines get-name, ein code war einfach nicht mehr funktioniert.
InformationsquelleAutor dvsaraiva | 2014-03-04
Schreibe einen Kommentar