python组成结构_[Python入门学习]-Python项目的组织结构

一.工程结构

1011415-20190406223556442-87723172.png

二.编码规范

1.命名规范

包:使用小写字母命名,如果有多个单词,则用下划线分隔,正确的命名方式:lower_with_under

模块:使用小写字母命名,如果有多个单词,则用下划线分隔,正确的命名方式:lower_with_under

类:使用驼峰法命名,如果有多个单词,则首字母大写,私有类用下划线开头,正确的命名方式:HelloWord和_HelloWord。在Python中,一个模块中可以定义多个类,比如在Java里面,一个文件一个类。

函数:使用小写字母命名,如果有多个单词,则用下划线分隔,私有函数用下划线开头,正确的命名方式:lower_with_under和_lower_with_under

变量:使用小写字母命名,如果有多个单词,则用下划线分隔,私有变量用下划线开头,正确的命名方式:lower_with_under、_lower_with_under或_lower_with_under

常量:全部使用大写字母命名,如果有多个单词,则用下划线分隔,私有常量用下划线开头,正确的命名方式:CAPS_WITH_UNDER或_CAPS_WITH_UNDER

2.命名规范总结

只有类名是用驼峰命名法,其他全部都是小写用下划线分隔,常量字母都是大写,下划线开头的都是私有的。

三.特殊模块

Python中特殊的模块__init__.py

1011415-20190407074633884-1132686439.png

这个__init__.py就是区别于包和这个文件夹的,只有包含了__init__.py模块的文件夹才能成为包(否则的话,就是一个文件夹),__init__.py是在模块导入时运行的。

__init__.py起了一个什么样的作用?在这个模块导入的时候它会运行,我们可以逐级导入,在__init__.py中做一些工作,但在实际开发当中,很少有人在__init__.py当中去做一些工作的,因为它只是标识了它是一个包。

1011415-20190407081917392-1037282701.png

1011415-20190407081952482-1888399803.png

运行part3下的__init__.py,结果如下,说明__init__.py模块在包被导入的时候运行了

1011415-20190407082036995-332562085.png

此时,我们继续在part3下的__init__.py中增加如下内容:

1011415-20190407082518626-301437294.png

并在part3下新增init_test.py,内容如下

1011415-20190407082457320-474957520.png

此时运行init_test.py

1011415-20190407082616862-823529751.png

在init_test.py中导入part3,part3下面的这个__init__.py文件就会被运行,而在这个文件当中又导入了part1,这样part1下的__init__.py被运行。

另外,前面看是否带圆圈也可以很明了我区分是普通文件夹还是包,另外这里的part1下的文件夹下就算是有__init__.py也是不能被导入的,因为它命令不符合规范,不是真正的包。

1011415-20190407083356318-272570293.png

四.导包路径

导包必须从根目录上去找,这是导包的一个小细节。

绝对导入:

from part3.my_package import init_test_test

相对导入:

from .my_package import init_test_test

但实际上我用相对导入,不是我想要的效果:

1011415-20190407092657708-695325448.png

改成绝对导入,正确

1011415-20190407092731116-863603819.png

1011415-20190407092940629-906674761.png

.代表的是当前目录

..代表上一层目录

1011415-20190407090319180-1777678608.png

导入模块的方式是直接:import 模块名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值