[Python-de] Indirekter Funktionsaufruf

Martin v. Löwis martin at v.loewis.de
Wed Jan 22 11:43:27 EST 2003


Oliver Vecernik <vecernik at aon.at> writes:

> AttributeError: PgResultSet instance has no __call__ method
> 
> 
> Wie muß ich die Funktionen richtig aufrufen?

Offenbar ist "func" hier vom Typ PgResultSet (also Pg-Ergebnis-Menge).

Kannst Du spekulieren, warum es sich um eine *Menge* von Werten
handelt, und nicht um einen einzelnen Wert? Meine Theorie: Ein
einzelnes Ergebnis von SELECT ist immer eine Menge von Werten, weil
man ja auch

SELECT foo, bar FROM foobar

hätte schreiben können - dann enthält der einzelne Wert also sowohl
"foo" als auch "bar". Die Frage ist nun, wie man an einzelne Felder
herankommt. Das weiß ich auch nicht, es müßte aber im DB API erklärt
sein. Meine Kandidaten (zum Zugriff auf foo in result) wären
result.foo, result[0] und result['foo'].

Es ist möglich, dass das immer noch kein String ist, dann musst Du
vielleicht das Ergebnis noch in einen String konvertieren. 

Einen String kannst Du natürlich nicht rufen - Du musst erst das
Funktionsobjekt finden. Wie man das macht, kann man aus Deinem
Codefragment nicht erraten, da Du ja keine Funktionen iso3166, mab
oder plzv definiert hast.

Ciao,
Martin




More information about the Python-de mailing list