一、符号查找
在编译课中我们学过,符号是编译中的重点,我们必须确保我们的每个符号都是“指向它应当指的地方”。但是在实际工程中,符号分散在多个文件中,可能会出现“符号相同”和“符号查找不到”两种经典的情况,所以每门语言都在尽力解决多个符号的问题,python 也不例外。
一般解决这种问题,都是通过一种加 namespace 的方式解决的,当我们有两个 name
的时候,可以考虑给他们分别一个 namespaceA.name
和 namespaceB.name
去进行区分。namespace 是一个很自然的事情,尤其是一个大工程,可以认为 namespace
本来就是一种很自然的嵌套的结构(尤其是与文件和目录结合在一起的时候),比如说“编译器的错误检测部分的错误类型中的未定义符号错误”,就是 compiler.check.ErrorType.UNDEFINE_SYMBOL
。我们在实际使用的时候,其实是不是担心我们没法把相同的符号区分开,而是担心“没法用较短的字符串表示我们想要的符号”,毕竟不是每个人都愿意在工程的任何一个地方,使用 compiler.check.ErrorType.UNDEFINE_SYMBOL
来描述一个枚举常量。我们更喜欢只用 UNDEFINE_SYMBOL
去表示。