2009-03-04 9 views
1

Ich war fasziniert von this answer zu meiner Frage über getting vim to highlight unmatched brackets in Python-Code. Genauer gesagt, ich spreche über den zweiten Teil seiner Antwort, wo er erwähnt, dass die C-Syntax-Hervorhebung eigentlich jede curly geschweifte Klammer innerhalb von Parens als Fehler markiert. Es ist ein unaufdringlicher Hinweis, dass Sie Parens nicht geschlossen haben, wenn alle Ihre nachgeschalteten geschweiften Klammern rot leuchten.Gibt es etwas, das nicht in Klammern angezeigt werden kann?

Dieser Trick funktioniert, weil die C-Syntax geschweifte Klammern in Klammern nicht erlaubt. Um meine (morbide?) Neugierde zu befriedigen, kann ich etwas Ähnliches mit Python-Code machen? Gibt es etwas in Python-Syntax, das in Klammern nicht zulässig ist?

Hinweis: Ich troll nicht für eine bessere Antwort auf meine andere Frage (es gibt viele gute Antworten dort bereits). Ich bin nur neugierig, ob dieser Trick überhaupt mit Python-Code möglich ist.

+0

@Kristo: Was Sie geschrieben haben macht sehr wenig Sinn. Die Antwort ist trivialerweise offensichtlich; Warum also fragst du es? Die meisten Leute stellen Fragen, weil sie nichts tun können. Was kannst du nicht tun? Welches Problem hast du? "nur neugierig" erscheint albern; es gibt normalerweise mehr. –

+0

Die Antwort war mir nicht trivial. Es tut mir leid, wenn ich dich verwirrt habe. Wie auch immer, ich habe etwas Neues aus dieser Frage gelernt, also bin ich zufrieden. –

Antwort

5

Jede Python-Anweisung (Import, wenn, für, während, def, Klasse usw.) kann nicht in den Klammern sein:

In [1]: (import sys) 
------------------------------------------------------------ 
File "<ipython console>", line 1 
    (import sys) 
    ^
<type 'exceptions.SyntaxError'>: invalid syntax 
+0

Enthält dies den Standard if-else? a = b wenn c sonst d? –

+0

das "b wenn c else d" kann sein in() s, weil es ein Ausdruck ist. Der Zuweisungsteil ("a = ...") kann nicht, weil in Python die Anweisung eine Anweisung ist. In Python kann keine Anweisung in Klammern stehen. –

0

Ich bin mir nicht sicher, was Sie versuchen zu tun, aber wie wäre es mit "Def" oder "Klasse"?

dieser Ausschnitt ist gültig, wenn es nicht in Klammern

class dummy: pass 
+0

Keine Anweisung kann() 'd Nur Ausdrücke sein. –