• 网站导航

怎么改写引用的话(怎样引用别人的话)

更新时间:2021-10-13 13:58:01 来源:  网络
近期可能很多人都在关注 怎么改写引用的话 相关的内容,今日小编也是在网上找了很多关于 怎么改写引用的话 相关信息并整理如下,希望对大家有所帮助:

这几天在用木兰语言继续改写 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

在“一级包”下运行 $ 木兰 二级包/乙.ul 输出 4

类似的,如果在“二级包”下运行则会报错:

$ 木兰 乙.ul 没找到模块:‘二级包2’调用层级如下见第1行:using 二级包2.丙

简言之,现在看来的包路径规则是:

当前运行目录 + 包路径(将.替换为/)= 模块路径

比如上面在“一级包”下运行时,运行目录为:一级包

引用的模块“甲”的路径为:一级包/二级包/甲

那么包路径就要:二级包/甲(代码中是 using 二级包.甲)

这样的包路径设定规则比较直观,但也意味着,对于存在引用的模块,必须在一个特定目录下运行,在任何其他目录下运行都会出现无法找到模块的错误。

下面是 0.0.15.1 版重现的几个小功能:

throw 语法,对应 Python 的 raiseisa 内置函数,对应 Python 的 isinstance改进部分报错信息

文档方面,为便于有意者参与木兰项目的开发维护,编写了开发流程与项目结构简介,今后逐步完善。另开始小结与 Python 的语法对比。

以上就是关于 怎么改写引用的话 相关问题啦,如需了解更多关于 怎么改写引用的话 问题,关注我们的下次更新哦