工程项目结构需要先弄清三个概念:包、模块、类

模块对应的是一个.py 文件,那么module_name 就是这个文件去掉.py 之后的文件名,py 文件中可以直接定义一些变量、函数、类。

导入模块

import module_name

from package_name import module_name

from package_name import *

那么如何import 时,python 解释器如何才能找到该模块放置的文件位置呢?python 寻找模块的优先级如下:

1、   当前文件目录

2、   环境变量PYTHONPATH

3、   sys.path(list 类型)

模块在被导入执行时,python解释器为加快程序的启动速度,会在与模块文件同一目录下生成.pyc文件。我们知道python是解释性的脚本语言,而.pyc是经过编译后的字节码,这一工作会自动完成,而无需程序员手动执行。

将某些功能相近的文件组织在同一文件夹下,就需要运用包的概念。包对应于文件夹,使用包的方式跟模块也类似,唯一需要注意的是,当文件夹当作包使用时,文件夹需要包含__init__.py文件,主要是为了避免将文件夹名当作普通的字符串。__init__.py的内容可以为空,一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,全部导出定义过的模块。

Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数。

每个文件(模块)都可以任意写一些没有缩进的代码,并且在载入时自动执行,为了区分主执行文件还是被调用的文件,Python引入了一个变量__name__,当文件是被调用时,__name__的值为模块名,当文件被执行时,__name__为'__main__'。这个特性,为测试驱动开发提供了支持,可以在每个模块中写上测试代码,这些测试代码仅当模块被Python直接执行时才会运行,代码和测试完美的结合在一起。

__init__.py

__init__.py可以为空,只要它存在,就表明此目录应被作为一个package处理。当然,__init__.py中也可以设置相应的内容。

__init__ 方法通常用在初始化一个类实例的时候

__all__

在模块(*.py)中使用导出__all__列表里的类、函数、变量等成员,否则将导出所有不以下划线开头(私有)的成员,在模块中使用__all__属性可避免在相互引用时的命名冲突

__path__变量

__path__指定了包的搜索路径

__new__

__new__方法接受的参数虽然也是和__init__一样,但__init__是在类实例创建之后调用,而 __new__方法正是创建这个类实例的方法

依照Python官方文档的说法,__new__方法主要是当你继承一些不可变的class时(比如int, str, tuple), 提供给你一个自定义这些类的实例化过程的途径。还有就是实现自定义的metaclass。

11.python开源——工程项目结构相关推荐

  1. Python开源项目目录结构参考

    python开源项目目录结构参考 转载:http://www.cnblogs.com/holbrook/archive/2012/02/24/2366386.html 原作者:心内求法 每个真正的程序 ...

  2. 近万个Python开源项目中精选Top34!

    作者 | Mybridge 编译 | 仲培艺 出品 | CSDN(ID:CSDNNews) [导语]踏着人工智能.区块链的东风,近年来一路"横冲直撞"的 Python 在实现了从小 ...

  3. 最受欢迎 Top 12 Python 开源框架,你都用过吗?

    作者 | 学Python的阿勇 责编 | 夕颜 出品 | CSDN博客 今天给大家带来了12个在GitHub等开源网站中最受欢迎的Python开源框架.如果你正在学习python,那么这12个开源框架 ...

  4. 以下选项中python用于异常处理结构_《Python 程序设计》复习题

    目录 填空题 一.基础知识 二.序列 三.选择结构与循环结构和函数及面向对象.文件 选择题 一.Python 基础语法 二.基本数据类型 三.程序的控制结构 四.函数和代码复用 五.组合数据类型 六. ...

  5. python开发框架大全_最受欢迎 Top 12 Python 开源框架,你都用过吗?

    作者 | 学Python的阿勇 责编 | 夕颜 出品 | CSDN博客 今天给大家带来了12个在GitHub等开源网站中最受欢迎的Python开源框架.如果你正在学习python,那么这12个开源框架 ...

  6. 15 个常用的python 开源框架

    注册登录 shaomine 博客园   首页   新随笔   联系   订阅 正在上传-重新上传取消​  管理 随笔 - 579  文章 - 1  评论 - 69  阅读 - 253万 15个最受欢迎 ...

  7. 目前最受欢迎的12个Python开源框架,你用过几个?

    今天给大家带来了12个在GitHub等开源网站中最受欢迎的Python开源框架.如果你正在学习python,那么这12个开源框架,千万别错过,这些框架包括事件I/O,OLAP,Web开发,高性能网络通 ...

  8. Python 开源库及示例代码

    Python 开源库及示例代码 更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boot 实战(干货) React 入门实战(干货) ...

  9. 2019 年最受欢迎的 Python 开源项目盘点!

    点击上方"Python技术之巅",马上关注,每天下午17:40准时推送 真爱,请置顶或星标 Python是当下最火的编程语言之一,在GitHub上有大量热门开源项目,近日开源众包平 ...

最新文章

  1. 如何可以让球的时速达到100公里?
  2. POJ-1845 数论
  3. Egret开发HTML5小游戏代码分享
  4. java 传绝对路径无效_【Java并发005】原理层面:volatile关键字全解析
  5. android api接口封装,android-apidesigner是一个网络接口封装工具
  6. Django Model出现的中文问题
  7. UEditor手动调节其宽度
  8. Python 实现窗函数
  9. 1156 Sexy Primes – PAT甲级真题
  10. Python-OpenCV4中的阈值二值化函数threshold(),要特别注意其返回值有两个
  11. 解封反垃圾邮件组织屏蔽方法
  12. 湖南省中职计算机应用教资面试流程?
  13. 青春期发育阶段的测量
  14. 使用DataGrip连接神通数据库
  15. 查看电脑连接的WiFi密码的两种方法
  16. 交易日九点到九点半的挂单撤单以及价格的一点心得
  17. HZYWX-技术交流-开发中的导入导出
  18. 首款开源软硬一体OpenCV AI Kit(OAK)用户问题官方答疑实录 QA
  19. win10打开程序响应很慢_【电脑维护宝典】WIN10系统下的电脑维护
  20. Ath10k Candela Technologies

热门文章

  1. 海贼王热血航线正在连接服务器,航海王热血航线连接服务器失败 进不去游戏解决方法...
  2. 艺术|油画|欣赏| 遥想当年赤壁
  3. CE修改器使用教程 (基础知识)扫雷逆向复现
  4. uploadify上传文件出现http302错误
  5. 等价划分类以及如何编写测试用例
  6. Python中输入和输出
  7. 人生重要的不是能力而是性格(75条)
  8. C#连接数据库时Appsettings 与connectionStrings的区别
  9. Node.js + puppeteer爬取推特ChineseVirus評論(1)
  10. python 0xa什么意思_python中rb是什么意思