Python, Pygame auf WinXP: syntax error bei '@'

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
siggi
User
Beiträge: 74
Registriert: Montag 29. Januar 2007, 14:22

Python, Pygame auf WinXP: syntax error bei '@'

Beitragvon siggi » Donnerstag 8. Februar 2007, 11:07

Hallo zusammen,

habe eine PyGame- und PyOde-Neulingsfrage:

von http://www.pygame.org/projects/20/364/?release_id=614
habe ich mir geladen
http://www.sixthfloorlabs.com/files/ale ... 0.1.tar.gz, das ergibt
alexandria-0.1.1-src.zip. Das ergibt entpackt den Ordner alexandria-0.1.1
mit Unterordnern und Dateien

Nach Starten dort von main.py kommt folgende Fehlermeldung:
-------------------------------------------------------------------------
@periodic(10)
^
SyntaxError: invalid syntax

Detaillierter:

C:\Dokumente und Einstellungen\Besitzer\Eigene Dateien \My Python23 files>cd alexandria-0.1.1
C:\Dokumente und Einstellungen\Besitzer\Eigene Dateien\My Python23 files\alexandria-0.1.1>python main.py
Traceback (most recent call last):
File "main.py", line 11, in ?
import Input
File " C:\Dokumente und Einstellungen\Besitzer\Eigene Dateien \My Python23 files\\alexandria-0.1.1\Input.py", line 111
@periodic(10)
^
SyntaxError: invalid syntax

Warum? Was läuft falsch?

Installiert habe ich, meine ich, alles , was gefordert ist und wichtig sein
könnte:
--------------------------------------------------------------------------------------
PythonWin 2.3.5 und die darauf abgestimmten Versionen von PyGame,
Numeric, Numarray, Numpy, PyODE, ODE

Kann mir jemand helfen?

Danke,

siggi

P.S.
die betreffende Stelle in input.py ist:
-----------------------------------------
def stop(self, start):
if self.game.input_disabled: return
self.game.geometry.set_velo(self.game.player,Vector([0, 0]))

@periodic(10)
def shoot_bullet(self):
game = self.game
if game.input_disabled: return
player = game.player
game.shoot(player, Bullet(player, killstr=player.killstr, bounces=0, strength=20))

Also die EXE aus
http://www.sixthfloorlabs.com/files/ale ... -win32.zip
läuft bei mir ohne Probleme.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Donnerstag 8. Februar 2007, 12:21

Das '@' dient zur Kennzeichnung eines Decorators. Grob gesagt ist das eine Funktion, die eine andere Funktion/Methode wrappen und dabei verändern/ergänzen/die Rückgabewerte ergänzen/bearbeiten/filtern kann.

Decorators wurden mit Python 2.4 eingeführt.
siggi
User
Beiträge: 74
Registriert: Montag 29. Januar 2007, 14:22

Beitragvon siggi » Donnerstag 8. Februar 2007, 14:43

Y0Gi hat geschrieben:Das '@' dient zur Kennzeichnung eines Decorators. Grob gesagt ist das eine Funktion, die eine andere Funktion/Methode wrappen und dabei verändern/ergänzen/die Rückgabewerte ergänzen/bearbeiten/filtern kann.

Decorators wurden mit Python 2.4 eingeführt.


Danke YOGi! Das erklärt, warum es bei mir mit Python 2.3.5 nicht klappt.

siggi

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]