Python学习---模版/包的概念
1.1. 模块/包的概念
在Python中,一个.py文件就称之为一个模块(Module)
模块一共三种:
python标准库
第三方模块
应用程序自定义模块
模块的使用:模块是用来组织函数的
解释器通过搜索路径找到hhh.py后, 将hhh.py解析后全部加入内存并全部赋值给hhh这个变量,后面取值需要 hhh.XXX()
# import hhh #解释器通过搜索路径找到hhh.p后, 将hhh.py解析后全部加入内存并全部赋值给hhh这个变量,后面取值需要 hhh.XXX() # from hhh import hello # 导入hhh.hello(),可以直接使用 print(hello(str)) # from hhh import hello as world # 导入hhh.hello()并且重新命名为world # from hhh import * # 如果本地有同名函数,则会根据引用位置的不同,导致函数的结果不同
包的使用:包是用来组织模块的,import hhh,就是调用hhh包并且执行__init__.py
import 包仅仅是执行了__init__.py,和其他模块并无关联
# 包导入的一定是模块,不同的包直接通过点来导入 # import hhh # 就是调用hhh这个包并且执行了__init__py这个模块,并未关联其他模块 # from demo.hhh import test # 从demo包下面的hhh包里面导入test模块 # from demo.hhh.test import add # 从demo包下面的hhh包里面导入test模块里面的add方法 # from demo import test # 从demo包里面导入test模块 print(add(4,5)) # import demo.logger # 错误 ImportError: No module named 'demo.logger' # import demo.hhh.test # 错误 ImportError: No module named 'demo.logger'
1.2. python中的BASEDIR
# version: python3.2.5 # author: ‘FTL1012‘ # time: 2017/12/12 21:28 import os, sys # 相对路径&&绝对路径 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 添加环境变量 sys.path.append(BASE_DIR) # print(BASE_DIR) # print(sys.path) from ATM.module import main # 在Python解释器中无法执行,无法找到ATM包 main.main() # print(__file__) # F:/Python_demountitled/ATM/bin/bin.py # print(os.path.abspath(__file__)) # F:\Python_demountitled\ATM\bin\bin.py # print(os.path.dirname(os.path.abspath(__file__))) # F:\Python_demountitled\ATM\bin
1.3.__name__变量
if __name__ == '__main__': pass # 如果在本函数内,则显示的是__main__ # 如果是在别的函数里面调用,则显示的是模块名 # 用于功能测试
1.4. 目录结构
简要解释一下: bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。 foo/: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py。 docs/: 存放一些文档。 setup.py: 安装、部署、打包的脚本。 requirements.txt: 存放软件依赖的外部Python包列表。 方便开发者维护软件的包依赖。将开发过程中新增的包添加进这个列表中,避免在setup.py安装依赖时漏掉软件包。 方便读者明确项目使用了哪些Python包。 README: 项目说明文件,功能如下: 软件定位,软件的基本功能。 运行代码的方法: 安装环境、启动命令等。 简要的使用说明。 代码目录结构说明,更详细点可以说明软件的基本原理。 常见问题说明。
【学习参考】 http://www.cnblogs.com/alex3714/articles/5161349.html
【学习参考】 http://www.cnblogs.com/yuanchenqi/articles/5732581.html
【学习参考】 http://www.cnblogs.com/alex3714/articles/5765046.html
作者:小a玖拾柒
-------------------------------------------
个性签名: 所有的事情到最後都是好的,如果不好,那說明事情還沒有到最後~
本文版权归作者【小a玖拾柒】和【博客园】共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利!