2011-08-15 3 views
13

(StackOverflow에 대한 또 다른 질문을 한 후)이 흥미로운 라이브러리는 Python으로 작성되었으며 그 목표는 문법 파싱입니다.Python 메타 클래스와 ModGrammar

http://code.google.com/p/modgrammar/

그리고 나는 또한에 대한이 튜토리얼을 발견 : 그래서, 모든 튜토리얼을 읽은 후, 나는 이것이 내가 무엇을 찾고 것을 알 수

http://packages.python.org/modgrammar/tutorial.html

을! 나는 튜토리얼의 첫 번째 예제 작성했습니다 :

from modgrammar import * 
class MyGrammar (Grammar): 
    grammar = (LITERAL("Hello,"), LITERAL("world!")) 

을하지만 난이 오류로 실행 :

Traceback (most recent call last): 
    File "test.py", line 1, in <module> 
    from modgrammar import * 
    File "/Users/tesi/Desktop/Prova/modgrammar/__init__.py", line 503 
    class Grammar(metaclass=GrammarClass): 
         ^
SyntaxError: invalid syntax 

문제는 메타 클래스 선언에 보인다. 파이썬 인터프리터를 호출 할 때 "컴파일 플래그"를 추가해야 할 수도 있습니까? 좋은 소식있어?! :) Thx

답변

17
class Grammar(metaclass=GrammarClass) 

은 Python3 구문을 사용합니다. 등가 Python2 구문은

class Grammar(object): 
    __metaclass__=GrammarClass 

것하지만, 다른 Python3-ISMS 많이있을 수 있기 때문에, 당신은 modgrammar를 사용하는 Python3를 사용 할 수 있습니다.

+0

정말 고마워요! 어리석게도 문제가 파이썬 버전에 있다고 생각하지 못했습니다! :) – Dario

1

그래,이 Python2x 파이썬 2.6+에 내가했습니다 백 포트 modgrammar을 class Grammar(metaclass=GrammarClass)

관련 문제