Seite 1 von 1

cPickle und **kwargs?

Verfasst: Mittwoch 12. Juli 2006, 22:29
von murph
hi!
bei mir führen wieder ganz einfache gfedankenfehler zum error:

Code: Alles auswählen

 lass cursor:
    def execute(self, sql, *args):      UDPSocksend.sendto(cPickle.dumps(['execute',sid,'sql',arguments=args]),addr)
nun akzeptiert er das gleichheitszeichen nicht!
in anderen fällen geht es, habe es extra noch einmal in dem live-interpreter ausprobiert, das geht so wie oben geschrieben, oder ist da in meinem gedankengang eine lücke, die ich nicht seheh kann?[/code]

Verfasst: Mittwoch 12. Juli 2006, 22:50
von rayo
Willst du einfach die Parameter weitergeben?

Dann kannst du *args schreiben:

Code: Alles auswählen

class cursor:
    def execute(self, sql, *args):
        UDPSocksend.sendto(cPickle.dumps(['execute', sid, 'sql', *args]), addr)
Gruss

Verfasst: Donnerstag 13. Juli 2006, 08:55
von murph
ich will die parameter übergeben, die ich für diese funktion erhalten habe.

Verfasst: Freitag 14. Juli 2006, 07:27
von BlackJack
Wenn das `execute()` dem von der DB API ähneln soll, dann musst Du in beiden Fällen das ``*`` vor `args` weglassen.

Verfasst: Freitag 14. Juli 2006, 11:46
von murph
das ganze ist nicht einfach zu erklären, muss es auch nicht mehr,
habe mich davon entfernt und den teil des codes umgeschrieben, übergebe
die socketdaten an den cursor. nur vorher arbeite ich halt mit der sessionid,
um an den richtigen cursor zu kommen :-)
so bin ich auch fast komplett API-conform, nur conn.close() etc muss ich noch einbauen!