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. unity动态加载FBX模型(Http下载到Rescources文件,场景Load直接调用):

    using UnityEngine; using System.Collections; using System.IO; using System.Net; using System; using ...

  2. 使用solr模拟京东搜素功能

    1 项目需求 1.可以根据关键字搜索商品 2.可以根据商品的分类和价格过滤搜索结果 3.可以根据价格排序 4.可以实现基本的分页功能 2 界面效果 3 项目环境搭建 1.创建一个动态的web工程 2. ...

  3. 【ExtJS】contentEl的使用

    contentEl 指定一个已存在的HTML元素, 或者一个已存在HTML元素的 id , 它们将被用作当前组件的内容. 此配置选项被用来将一个已存在的HTML元素 插入到一个新组件(在组件渲染之后它 ...

  4. 纯CSS让overflow:auto页面滚动条出现时不跳动

    现代浏览器滚动条默认是overflow:auto类型的,也就是如果尺寸不足一屏,没有滚动条:超出,出现滚动条.于是,问题来了: 信息流页面,如新浪微博,是从上往下push渲染的.开始只有头部一些信息加 ...

  5. jmeter(2)——元件简介、作用域及执行顺序

    上一篇主要介绍了一下 jmeter还有安装配置,这一篇来说一下它的目录组成和元件 1.目录组成 1>bin目录是可执行文件,双击jmeter.bat启动工具,也可以编辑这个批处理文件,设置jvm ...

  6. Golang教程:并发介绍

    Go是并发语言,而不是并行语言.在讨论Go并发性之前,我们必须首先了解什么是并发,以及并发与并行的区别. 什么是并发 并发(concurrency)是指一次处理大量事情的能力.让我们用一个例子来说明. ...

  7. 进入与退出anconda虚拟环境

    # 进入虚拟环境,使用 # # $ conda activate spider-venv # # 退出虚拟环境,使用 # # $ conda deactivate

  8. solr不是标准的java project解决方案

    官方默认提供的源码包并不是一个标准的Eclipse Java - Project,需要使用ivy进行构建,通过ivy的构建可以将下载下来的源码包转换成一个标准的java Project,然后我们就能把 ...

  9. JSON跨域问题总结

    一.跨域问题的原因: 1 浏览器的检查 2 跨域 3 XMLHttpRequest请求二.跨域问题的解决: 1 禁止浏览器检查:使用dos命令,在启动浏览器的时候,加一个参数:chrome --dis ...

  10. nodejs常用npm包

    express常用npm包整理如下 art-template 一款js模板引擎,性能不错 jayson     一款纯node的rpc应用包,可实现rpc服务.tcp.http等服务 multer   ...