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. php codeception

    前言 本测试用例只针对yii2 basic框架而写,若要支持其他框架,请自行查看phpcodeception指导(需要FQ)http://codeception.com/ yii2 basic默认已经 ...

  2. 【Lua】遍历目录结果输出到页面中,刷新页面后出现500 Internal Server Error

    在通过lua获取目录json字符串,然后作为数据源,通过Extjs生成树的过程中,发生了一个奇怪的问题,那就是获取目录json字符串然后传递给Extjs生成树的这个过程中,一开始都是很顺利的就生成了, ...

  3. Node.js中http-server的使用

    Node.js中http-server的使用 使用阿里的npm镜像 国外的npm太慢了.查看一下自己使用的源: npm config get registry 应该显示https://registry ...

  4. WPF实现无刷新动态切换多语言(国际化)

    1. 在WPF中国际化使用的是 .xaml文件的格式 如图:Resource Dictionary (WPF) 2. 创建默认的语言文件和其他语言文件 这里以英语为默认语言,新建一个 Resource ...

  5. C#导入Excel|读取Excel方法

    OleDbConnection读取 /// <summary>       /// 返回Excel数据源       /// </summary>       /// < ...

  6. JS大写转小写小写转大写,JS字符串大小写互换

    Array.prototype.map.call(str,a=>a.toUpperCase(a)==a?a.toLowerCase():a.toUpperCase()).join(''); 效果 ...

  7. webservice随记

    WebService:跨平台.系统.跨语言间相互调用 CXF:Axis(Apache)-> Axis2(Apache)XFire -> CXF(Celtrix + XFire)(Apach ...

  8. 三:Mybatis知识整理(3)

    一:mybatis中模糊查询的方法: 1.直接传参法:在java传参时进行拼接 -- %keyword% 2.mysql内置函数:concart('%',#{keyword},'%') -- 拼接sq ...

  9. Rabbit简单队列模式

    1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/ ...

  10. 流畅的python和cookbook学习笔记(二)

    1.元组拆包和解压序列赋值 任何的序列 (或者是可迭代对象) 可以通过一个简单的赋值语句解压并赋值给多个 变量.唯一的前提就是变量的数量必须跟序列元素的数量是一样的. 1.平行赋值: >> ...