from test2 import *
import导入和from import 导入,在内存上没有差别,都需要从头到尾全部编译一遍,并加载到内存中。
这里如果在test2中定义__all__=['func1', ....],这里限制了上一行全量导入的范围。
__name__ ,如果该文件是执行文件,则__name__就是__main__()方法
__name__,如果该文件是被导入文件, 则__name__就是文件名(模块名)
如果要查找并执行一个模块文件,有两种途径:
(1)将该文件的绝对路径添加到sys.path
(2)通过from ... import .. 中导入,这种会按照from目录下一级级查找。
包:包是一系列相关功能的集合。
包特点:
(1)包和文件夹的区别在于,是否有__init__.py文件,这个文件相当于包的管家,用来管理包中的所有的模块文件
(2)python3中有没有__init__.py文件都可以,但是在python2中,这个文件是必须的
导入包的方式
(1)通过包名from ... import ...导入
(2)可以将所有模块先import 到__init__.py文件, 例如 from . import *,将所有模块全部导入,再在执行模块中导入包名即可。
软件的目录规范
bin 目录, 存放程序的启动文件 start.py
core 目录,核心逻辑代码,业务相关代码都在这里
conf目录,配置目录,配置相关的信息存放在这里,例如settings.py
common目录, 公共目录,一些公共的工具以及方法存放在这里
log目录,日志目录,用于记录日常执行log
db目录, 数据库目录,用于存放用户数据
readme.txt, 项目的使用说明
requirements.txt, 项目以来的python插件。