一.工程结构
二.编码规范
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
这个__init__.py就是区别于包和这个文件夹的,只有包含了__init__.py模块的文件夹才能成为包(否则的话,就是一个文件夹),__init__.py是在模块导入时运行的。
__init__.py起了一个什么样的作用?在这个模块导入的时候它会运行,我们可以逐级导入,在__init__.py中做一些工作,但在实际开发当中,很少有人在__init__.py当中去做一些工作的,因为它只是标识了它是一个包。
运行part3下的__init__.py,结果如下,说明__init__.py模块在包被导入的时候运行了
此时,我们继续在part3下的__init__.py中增加如下内容:
并在part3下新增init_test.py,内容如下
此时运行init_test.py
在init_test.py中导入part3,part3下面的这个__init__.py文件就会被运行,而在这个文件当中又导入了part1,这样part1下的__init__.py被运行。
另外,前面看是否带圆圈也可以很明了我区分是普通文件夹还是包,另外这里的part1下的文件夹下就算是有__init__.py也是不能被导入的,因为它命令不符合规范,不是真正的包。
四.导包路径
导包必须从根目录上去找,这是导包的一个小细节。
绝对导入:
from part3.my_package import init_test_test
相对导入:
from .my_package import init_test_test
但实际上我用相对导入,不是我想要的效果:
改成绝对导入,正确
.代表的是当前目录
..代表上一层目录
导入模块的方式是直接:import 模块名