1.1. 模块/包的概念

在Python中,一个.py文件就称之为一个模块(Module)

模块一共三种:

python标准库

第三方模块

应用程序自定义模块

模块的使用:模块是用来组织函数的

解释器通过搜索路径找到hhh.py后, 将hhh.py解析后全部加入内存并全部赋值给hhh这个变量,后面取值需要 hhh.XXX()

  1. # import hhh #解释器通过搜索路径找到hhh.p后, 将hhh.py解析后全部加入内存并全部赋值给hhh这个变量,后面取值需要 hhh.XXX()
  2. # from hhh import hello # 导入hhh.hello(),可以直接使用 print(hello(str))
  3. # from hhh import hello as world # 导入hhh.hello()并且重新命名为world
  4. # from hhh import * # 如果本地有同名函数,则会根据引用位置的不同,导致函数的结果不同

包的使用:包是用来组织模块的,import  hhh,就是调用hhh包并且执行__init__.py

       import 包仅仅是执行了__init__.py,和其他模块并无关联

  1. # 包导入的一定是模块,不同的包直接通过点来导入
  2. # import hhh # 就是调用hhh这个包并且执行了__init__py这个模块,并未关联其他模块
  3. # from demo.hhh import test # 从demo包下面的hhh包里面导入test模块
  4. # from demo.hhh.test import add # 从demo包下面的hhh包里面导入test模块里面的add方法
  5. # from demo import test # 从demo包里面导入test模块
  6. print(add(4,5))
  7. # import demo.logger # 错误 ImportError: No module named 'demo.logger'
  8. # import demo.hhh.test # 错误 ImportError: No module named 'demo.logger'

1.2. python中的BASEDIR

  1. # version: python3.2.5
  2. # author: ‘FTL1012‘
  3. # time: 2017/12/12 21:28
  4. import os, sys
  5. # 相对路径&&绝对路径
  6. BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  7. # 添加环境变量
  8. sys.path.append(BASE_DIR)
  9. # print(BASE_DIR)
  10. # print(sys.path)
  11. from ATM.module import main # 在Python解释器中无法执行,无法找到ATM包
  12. main.main()
  13.  
  14. # print(__file__) # F:/Python_demountitled/ATM/bin/bin.py
  15. # print(os.path.abspath(__file__)) # F:\Python_demountitled\ATM\bin\bin.py
  16. # print(os.path.dirname(os.path.abspath(__file__))) # F:\Python_demountitled\ATM\bin

1.3.__name__变量

  1. if __name__ == '__main__':
  2. pass
  3. # 如果在本函数内,则显示的是__main__
  4. # 如果是在别的函数里面调用,则显示的是模块名
  5. # 用于功能测试

1.4. 目录结构

  1. 简要解释一下:
  2. bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
  3. foo/: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py
  4. docs/: 存放一些文档。
  5. setup.py: 安装、部署、打包的脚本。
  6. requirements.txt: 存放软件依赖的外部Python包列表。
  7. 方便开发者维护软件的包依赖。将开发过程中新增的包添加进这个列表中,避免在setup.py安装依赖时漏掉软件包。
  8. 方便读者明确项目使用了哪些Python包。
  9. README: 项目说明文件,功能如下:
  10. 软件定位,软件的基本功能。
  11. 运行代码的方法: 安装环境、启动命令等。
  12. 简要的使用说明。
  13. 代码目录结构说明,更详细点可以说明软件的基本原理。
  14. 常见问题说明。

【学习参考】 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. 剑指offer等算法总结归类

    从数据结构分 一.链表: 3.题目描述:输入一个链表,从尾到头打印链表每个节点的值(递归) 思路:递归调用,调一次,加一次到list中 14.题目描述:输入一个链表,输出该链表中倒数第k个结点 两个指 ...

  2. Oracle 事务操作

    在看本文之前,请确保你已经了解了Oracle事务和锁的概念即其作用,不过不了解,请参考数据库事务的一致性和原子性浅析和Oracle TM锁和TX锁 1.提交事务 当执行使用commit语句可以提交事务 ...

  3. Light Table 编辑器修改字体 更新

    view->command->use.behaviors 加上这一句  (:lt.objs.style/font-settings "Inconsolata" 14 1 ...

  4. 【curl】Linux下命令行curl详解

    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具. 语法:# c ...

  5. java 配置在.properties文件中的常量

    不让用常量类,那就用.properties文件配置,放在根目录. import java.util.HashMap; import java.util.Iterator; import java.ut ...

  6. JavaScript对象中的constructor属性

    constructor属性始终指向创建当前对象的构造函数. 比如下面的例子: // 等价于 var foo = new Array(1, 56, 34, 12); var arr = [1, 56, ...

  7. Asp.NET MVC4 + Ajax 实现多文件上传

    本文转自http://www.cnblogs.com/freeliver54/archive/2013/05/15/3079700.html JS部分测试可以,jQuery部分没有测试先留着 HTML ...

  8. .net core 填坑记之—格式转换问题

    最近在将项目从.net 迁移到.net core环境中,迁移完成后,发布于Windows平台上进行测试,所有功能均能正常运行. 为了项目能够在正式环境也能正常运行,提前进行Linux环境部署(Cent ...

  9. smarty assign 赋值

    assign赋值 void assign (mixed var) void assign (string varname, mixed var) This is used to assign valu ...

  10. MySQL 5.7 解压版 安装教程(图文详细)[Windows]

    最近在学习中用到了MySQL数据库,在安装过程中遇到了不少问题,在翻了大半天百度后,问题基本都解决了,所以写一篇MySQL 5.7 解压版的图文详细安装教程. 至于为什么我会选择解压版而不是安装版,一 ...