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
Python学习---模版/包的概念的更多相关文章
- Python学习 之 包和模块
1.rpm -ql python #查看python在计算机中安装了哪些文件 2.模块是一个可以导入的Python脚本文件 包是一堆按目录组织的模块和子包,目录下的__init__.py文件存放了包的 ...
- Python 模块和包的概念
模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函 ...
- Python学习笔记_01:基本概念介绍
目录 1.Python语言简介 2.Python中常用数据结构 2.1什么是列表? 2.2什么是元组? 2.3什么是字典? 2.4索引及分片 3.其它基本概念 3.1数据类型和变量 3.2生成器 3. ...
- python学习8-闭包、迭代器(转载)
一.第一类对象: 函数名是一个变量,可以当普通变量使用,但它又是一个特殊的变量,与括号配合可以执行函数. 函数名的运用 1.单独打印是一个内存地址 2.可以给其他变量赋值 3.可以作为容器类变量的元素 ...
- python学习第十三天 -模块和包
模块和包 大家都知道,在计算机程序开发的过程中,随着程序代码越写越多,这样代码就会越不容易维护. 有时候为了好维护代码,把不同功能的函数放到不同的xx.py文件中. 在python中,一个.py文件就 ...
- Python学习笔记之模块与包
一.模块 1.模块的概念 模块这一概念很大程度上是为了解决代码的可重用性而出现的,其实这一概念并没有多复杂,简单来说不过是一个后缀为 .py 的 Python 文件而已 例如,我在某个工作中经常需要打 ...
- Python入门基础学习(模块,包)
Python基础学习笔记(五) 模块的概念:模块是python程序架构的一个核心概念 每个以拓展名py结尾的python源代码文件都是一个模块 模块名同样也是一个标识符,需要符合标识符的命名规则 在模 ...
- day3-Python集合、函数、文件操作,python包的概念
本节大纲: 1 python程序由包(package).模块(module)和函数组成.包是由一系列模块组成的集合.模块是处理某一类问题的函数和类的集合. 2 包就是一个完成特定任务的工具箱. 3 包 ...
- python学习笔记13(模块、包)
在Python中有一个概念叫做模块(module),比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块. 模块文件以.py后缀结 ...
随机推荐
- 剑指offer等算法总结归类
从数据结构分 一.链表: 3.题目描述:输入一个链表,从尾到头打印链表每个节点的值(递归) 思路:递归调用,调一次,加一次到list中 14.题目描述:输入一个链表,输出该链表中倒数第k个结点 两个指 ...
- Oracle 事务操作
在看本文之前,请确保你已经了解了Oracle事务和锁的概念即其作用,不过不了解,请参考数据库事务的一致性和原子性浅析和Oracle TM锁和TX锁 1.提交事务 当执行使用commit语句可以提交事务 ...
- Light Table 编辑器修改字体 更新
view->command->use.behaviors 加上这一句 (:lt.objs.style/font-settings "Inconsolata" 14 1 ...
- 【curl】Linux下命令行curl详解
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具. 语法:# c ...
- java 配置在.properties文件中的常量
不让用常量类,那就用.properties文件配置,放在根目录. import java.util.HashMap; import java.util.Iterator; import java.ut ...
- JavaScript对象中的constructor属性
constructor属性始终指向创建当前对象的构造函数. 比如下面的例子: // 等价于 var foo = new Array(1, 56, 34, 12); var arr = [1, 56, ...
- Asp.NET MVC4 + Ajax 实现多文件上传
本文转自http://www.cnblogs.com/freeliver54/archive/2013/05/15/3079700.html JS部分测试可以,jQuery部分没有测试先留着 HTML ...
- .net core 填坑记之—格式转换问题
最近在将项目从.net 迁移到.net core环境中,迁移完成后,发布于Windows平台上进行测试,所有功能均能正常运行. 为了项目能够在正式环境也能正常运行,提前进行Linux环境部署(Cent ...
- smarty assign 赋值
assign赋值 void assign (mixed var) void assign (string varname, mixed var) This is used to assign valu ...
- MySQL 5.7 解压版 安装教程(图文详细)[Windows]
最近在学习中用到了MySQL数据库,在安装过程中遇到了不少问题,在翻了大半天百度后,问题基本都解决了,所以写一篇MySQL 5.7 解压版的图文详细安装教程. 至于为什么我会选择解压版而不是安装版,一 ...