在python OO中使用PLY?

2024-09-27 22:18:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个启动应用程序的系统:

python -OO my_app.py

我无法更改应用程序的启动方式,但我可以完全控制应用程序。当使用PLY向应用程序添加解析器时,我被-OO删除了PLY依赖的docstring这一事实所困扰。在

在以-OO开头的应用程序中不可能使用PLY吗?有没有什么聪明的Python技巧可以用来解决这个问题?在

我一直在考虑使用Cython编译解析器模块。我不确定是否能做到,这会增加一层复杂性,所以在我走上这条路之前,我会感激其他任何想法。在


Tags: 模块pyapp应用程序解析器技巧my系统
1条回答
网友
1楼 · 发布于 2024-09-27 22:18:54

好吧,经典的例子就是在写问题的时候找到答案。。。在

PLY手册中明确指出有一个optimize mode用于这个确切的用例。我认为它指的是另一种性能优化。在

请注意,由于-OO删除了docstring,因此使用optimize=1实例化lexer和解析器将不会处理如下所示的空规则:

def p_commands(self, p):
    """commands :
                | commands command"""
    # This will fail when running optimized

def p_command(self, p):
    """command : foo
               | bar"""
    p[0] = p[1]

相关问题 更多 >

    热门问题