【问题标题】:Why doesn't SLY throw NameError when declaring tokens?为什么 SLY 在声明令牌时不抛出 NameError?
【发布时间】:2022-11-17 23:24:50
【问题描述】:
class MyLexer(Lexer):
    tokens = {A,B}

lex = MyLexer()

在上面的代码 sn-p 中,我引用了之前未在任何地方声明的 A 和 B。这个有效的 python 语法如何?

【问题讨论】:

    标签: python syntax-error nameerror sly


    【解决方案1】:

    Python 在运行时进行解释,如果语法有效,则代码仅以字节码形式编译,不检查任何内容。

    那里的语法是有效的,您只是在引用未导入/声明的内容。

    您可以使用静态代码分析工具来避免此类错误,大多数 IDE 都内置了它们。 使用 pyright/mypy 进行类型检查也是一个好主意

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-15
      • 2021-04-30
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 2020-03-28
      • 2012-03-07
      相关资源
      最近更新 更多