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

Python学习---模版/包的概念的更多相关文章

  1. Python学习 之 包和模块

    1.rpm -ql python #查看python在计算机中安装了哪些文件 2.模块是一个可以导入的Python脚本文件 包是一堆按目录组织的模块和子包,目录下的__init__.py文件存放了包的 ...

  2. Python 模块和包的概念

    模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函 ...

  3. Python学习笔记_01:基本概念介绍

    目录 1.Python语言简介 2.Python中常用数据结构 2.1什么是列表? 2.2什么是元组? 2.3什么是字典? 2.4索引及分片 3.其它基本概念 3.1数据类型和变量 3.2生成器 3. ...

  4. python学习8-闭包、迭代器(转载)

    一.第一类对象: 函数名是一个变量,可以当普通变量使用,但它又是一个特殊的变量,与括号配合可以执行函数. 函数名的运用 1.单独打印是一个内存地址 2.可以给其他变量赋值 3.可以作为容器类变量的元素 ...

  5. python学习第十三天 -模块和包

    模块和包 大家都知道,在计算机程序开发的过程中,随着程序代码越写越多,这样代码就会越不容易维护. 有时候为了好维护代码,把不同功能的函数放到不同的xx.py文件中. 在python中,一个.py文件就 ...

  6. Python学习笔记之模块与包

    一.模块 1.模块的概念 模块这一概念很大程度上是为了解决代码的可重用性而出现的,其实这一概念并没有多复杂,简单来说不过是一个后缀为 .py 的 Python 文件而已 例如,我在某个工作中经常需要打 ...

  7. Python入门基础学习(模块,包)

    Python基础学习笔记(五) 模块的概念:模块是python程序架构的一个核心概念 每个以拓展名py结尾的python源代码文件都是一个模块 模块名同样也是一个标识符,需要符合标识符的命名规则 在模 ...

  8. day3-Python集合、函数、文件操作,python包的概念

    本节大纲: 1 python程序由包(package).模块(module)和函数组成.包是由一系列模块组成的集合.模块是处理某一类问题的函数和类的集合. 2 包就是一个完成特定任务的工具箱. 3 包 ...

  9. python学习笔记13(模块、包)

    在Python中有一个概念叫做模块(module),比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块. 模块文件以.py后缀结 ...

随机推荐

  1. jQuery练习 | 复选框及编辑模式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  2. openerp学习笔记 日期时间相关操作

    日期格式化字符串:DATE_FORMAT = "%Y-%m-%d" 日期时间格式字符串:DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S" ...

  3. ACS蚁群算法求解对称TSP旅行商问题的JavaScript实现

    本来以为在了解蚁群算法的基础上实现这道奇怪的算法题并不难,结果实际上大相径庭啊.做了近三天时间,才改成现在这能勉强拿的出手的模样.由于公式都是图片,暂且以截图代替那部分内容吧,mark一记. 1 蚁群 ...

  4. <数据挖掘导论>读书笔记3--分类

    1.分类的基本概念 分类任务就是通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类标号y 目标函数也称为分类模型. 2. 解决分类问题的一般方法: 决策树分类法 基于规则的分类法 神经网 ...

  5. Expression Blend实例中文教程(7) - 动画基础快速入门Animation

    通过前面文章学习,已经对Blend的开发界面,以及控件有了初步的认识.本文将讲述Blend的一个核心功能,动画设计.大家也许注意到,从开篇到现在,所有的文章都是属于快速入门,是因为这些文章,都是我曾经 ...

  6. java 线程池(1)

    问题 : 线程池中的 coreSize 和 maxSize 的作用分别是什么? 未执行的线程池存在在哪种数据类型,为什么使用这种类型的数据结构 ThreadPoolExecutor概述 ThreadP ...

  7. svn在commit后报错:is scheduled for addition, but is missing

    今天通过svn 的cr(code review)代码审核后,我欲执行svn ci -m"xxxxxxx(提交注释) ISSUE=3380305",但是没有提交成功,SVN报错啦! ...

  8. 如何使用 MySQL EntityFramework 组件处理 MYSQL PaaS DB

    MySQL Database on Azure 是 Azure 平台上推出的 MySQL 云数据库服务,通过全面兼容 MySQL 协议,为用户提供了一个全托管的性能稳定.可快速部署.高可用.高安全性的 ...

  9. spring和springboot常用注解总结

    @ConfigurationProperties 可以非常方便的把资源文件中的内容绑定到对象上   @Value("${app.name}") 注入简单值 @Import 通过导入 ...

  10. Could not open php://output for writing.问题解决

    这是一个自己在项目中遇到的问题. 由于一直以来,公司都是用的Linux服务器,这次为客户做项目,换成了winserver. 项目中有一项功能是Excel导出,采用PHPEXCEL类库实现.由于是个小项 ...