木兰语言 0.0.15.1:继续改写 Python 冒险游戏;引用包路径规则小结
这几天在用木兰语言继续改写 Python 文字冒险游戏例程时,又体验到引用模块时使用的包路径与 Python 的差别,之前虽然写过相关测试但未整理成文档,在此小结一下。 以下面的文件目录为例(注意:不需在包目录中添加 __init__.py 之类的文件): 一级包 二级包 甲.ul 乙.ul 甲和乙为木兰源码,内容如下,甲.ul: a = 3 乙.ul 中引用甲模块: using 甲 print(甲.a) 如果在“二级包”目录下运行: $ 木兰 乙.ul 输出 3 无误。 但如果在“二级包”的上一级目录“一级包”下运行则会报错: $ 木兰 二级包/乙.ul 😰 没找到模块:‘甲’ 调用层级如下 见第1行:using 甲 需要将 乙.ul 中的包路径改为才能正确运行: using 二级包.甲 print(二级包.甲.a) 此时如果有另一个二级包: 一级包 二级包 甲.ul 乙.ul 二级包2 丙.ul 也可以在乙中引用丙: using 二级包2.丙 print(二级包2.丙.b) 丙.ul内容: b = 4 在“一级包”下运行 $ ...