[Spring-Analysis] v0.0.12 发布
Spring-Analysis 是一个围绕 springframework 进行源码分析的项目。 v0.0.12 版本现已发布,此版本更新内容包括: DefaultListableBeanFactory AbstractAutowireCapableBeanFactory 项目地址: GitHub Gitee
这几天在用木兰语言继续改写 Python 文字冒险游戏例程时,又体验到引用模块时使用的包路径与 Python 的差别,之前虽然写过相关测试但未整理成文档,在此小结一下。
以下面的文件目录为例(注意:不需在包目录中添加 __init__.py 之类的文件):
甲和乙为木兰源码,内容如下,甲.ul:
a = 3
乙.ul 中引用甲模块:
using 甲
print(甲.a)
如果在“二级包”目录下运行:
$ 木兰 乙.ul
输出 3 无误。
但如果在“二级包”的上一级目录“一级包”下运行则会报错:
$ 木兰 二级包/乙.ul
😰 没找到模块:‘甲’
调用层级如下
见第1行:using 甲
需要将 乙.ul 中的包路径改为才能正确运行:
using 二级包.甲
print(二级包.甲.a)
此时如果有另一个二级包:
也可以在乙中引用丙:
using 二级包2.丙
print(二级包2.丙.b)
丙.ul内容:
b = 4
在“一级包”下运行 $ 木兰 二级包/乙.ul 输出 4
类似的,如果在“二级包”下运行则会报错:
$ 木兰 乙.ul
😰 没找到模块:‘二级包2’
调用层级如下
见第1行:using 二级包2.丙
简言之,现在看来的包路径规则是:
当前运行目录 + 包路径(将.替换为/)= 模块路径
比如上面在“一级包”下运行时,运行目录为:一级包
引用的模块“甲”的路径为:一级包/二级包/甲
那么包路径就要:二级包/甲(代码中是 using 二级包.甲)
这样的包路径设定规则比较直观,但也意味着,对于存在引用的模块,必须在一个特定目录下运行,在任何其他目录下运行都会出现无法找到模块的错误。
下面是 0.0.15.1 版重现的几个小功能:
文档方面,为便于有意者参与木兰项目的开发维护,编写了开发流程与项目结构简介,今后逐步完善。另开始小结与 Python 的语法对比。
主要部分的代码行数统计,格式为:上次->现在。
分析器/语法分析器.py:1015 -> 1021分析器/词法分析器.py:207 -> 213分析器/语法树.py:202 -> 209环境.py,定义全局方法:172 -> 174测试/期望值表.py(从“运行所有.py”中提取):131 -> 133功用/规律.py,正则表达式 API 原型:100分析器/语法成分.py,从语法分析器中提取出来的枚举常量:82 -> 83功用/反馈信息.py:71 -> 75测试/运行所有.py,检验所有木兰测试代码片段:62 -> 71交互.py,交互环境(REPL):148中.py,主程序:74功用/调试辅助.py,:57setup.py, 34测试/unittest/语法树.py,确保生成的语法树与原始版本一致:88测试/unittest/正则.py:62测试/unittest/交互.py,交互环境相关测试:28测试/unittest/所有用例.py:24分析器/错误.py:26
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。
Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。
Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。