2009-06-30 3 views
1

Cody konnte keine Python-Makrosyntax erstellen. Er sagtEine Anweisung zum Anpassen von Pythons Makrosyntax

Diese Makros können Sie vollständig benutzerdefinierte Syntax definieren, von neuen Konstrukte neue Betreiber. Es gibt keine Möglichkeit, dies in Python zu tun, wie es aussieht.

Ich bin nicht sicher, was er unter

  • neue Konstrukte neue Operatoren: Hat er auf binäre Operatoren wie + verweisen, - und Multiplikation in Mathe?
  • sein Hauptziel: Wo profitieren Sie bei der Anpassung der Makrosyntax von Python?

Antwort

6

Kein Zweifel Cody bezieht sich völlig neue Betreiber, die derzeit nicht in Python sind, wie (ich weiß nicht) ^^ oder ++ oder +* und so weiter, was sie bedeuten könnte. Und er sagt ausdrücklich, dass das Makro-System Sie eine völlig neue Syntax für Python definieren kann (seine Frage war über die Syntax der Makrodefinitionen selbst).

Manche Leute interessieren sich brennend für Syntax und würden zum Beispiel viel lieber sehen, Python verwendet geschweifte Klammern statt Gruppen durch Einrückung; aber Python selbst wird nie jene, die Präferenzen der Menschen folgt ...:

>>> from __future__ import braces 
    File "<stdin>", line 1 
SyntaxError: not a chance 

Also diese Leute könnten erhalten, was sie durch die Definition eine völlig neue Syntax für Python durch dieses Makrosystem sehnen.

Andere könnten es verwenden, um bestimmte benutzerdefinierte Sprachen zu definieren, die meistens Pythons allgemeinen Umrissen folgen, aber spezielle neue Schlüsselwörter hinzufügen, Funktionen ohne Klammern verwenden lassen und so weiter und so fort.

Ob das eine gute Sache ist, ist in der Tat ein uraltes, strittiges Thema - aber einige Sprachen wie Lisp hatten immer Makros solcher Macht, und viele Leute, die von Lisp nach Python kamen, wie Peter Norvig, würden Ich bin wahrscheinlich froh, dass ich diese Syntax-Fähigkeit, die sie in Lisp hatten, zurückbekommen habe, aber in Python fehlt.

+0

@Alex: Vielen Dank für Ihre Erklärungen! –