一、包

1、什么是包

包是一种通过使用‘.模块名’来组织python模块名称空间的方式。具体就是一个包含有__init__.py文件的文件夹,所以其实我们创建包的目的就是为了用文件夹将文件/模块组织起来

PS:(1)在pyhton3中没有__init__不会报错,但在python2会报错

(2)创建包的目的就是为了导入模块而不是运行,包的本质是个模块也是个文件夹

2、为什么用包

虽然功能越来越多被导入的模块越多,我们需要把这些模块统一组织起来方便我们管理,以提高程序的结构性和稳定性

ps:(1)无论portfrom..import导入都要求点的左边是个包

(2)form...import后面必须是一个明确的名字,不包含点

3、怎么用包

(1)包之import的使用

#在与glance同级的test.py中

import glance

glance.cmd.manage.main()'''执行结果:

AttributeError: module'glance' has no attribute 'cmd'

'''

(2)包之from...import的使用

1 fromglance.db import models2 models.register_models('mysql')

二、绝对路径和相对路径(最好用form...import)

ps:包以及包所包含的模块都是用来被导入的,而不是被直接执行的。而环境变量都是以执行文件为准的

绝对导入与相对导入

# 绝对导入: 以执行文件的sys.path为起始点开始导入,称之为绝对导入

# 优点: 执行文件与被导入的模块中都可以使用

# 缺点: 所有导入都是以sys.path为起始点,导入麻烦

# 相对导入: 参照当前所在文件的文件夹为起始开始查找,称之为相对导入

# 符号: .代表当前所在文件的文件加,..代表上一级文件夹,...代表上一级的上一级文件夹

# 优点: 导入更加简单

# 缺点: 只能在导入包中的模块时才能使用

#注意:1. 相对导入只能用于包内部模块之间的相互导入,导入者与被导入者都必须存在于一个包内2. attempted relative import beyond top-level package # 试图在顶级包之外使用相对导入是错误的,言外之意,必须在顶级包内使用相对导入,

每增加一个.代表跳到上一级文件夹,而上一级不应该超出顶级包

总的来说:(1)包和执行文件在同一个目录下,在执行文件导入包用import更简单,用from ...import 需要手动添加环境变量

(2)在模块间互相导入,用from...import的相对导入简单,import需要注意sys环境变量

(3)相对导入和绝对导入只能from...import

python模块使用相对路径还是绝对路径、哪种更好_python学习的第十八天模块之包、相对搜索路径和绝对搜索路径...相关推荐

  1. python多线程编程模块不包括_python 学习_第四模块 并发编程(多线程)

    python 学习_第四模块 并发编程(多线程) 一  开启线程方式 from threading importThreadimporttimedefsay(name): time.sleep(2)p ...

  2. python的os模块使用_Python学习笔记之os模块使用总结

    #!/usr/bin/env python ##-*- coding: utf-8 -*- import os print "n欢迎大家跟我一起学Python"; system=o ...

  3. python函数和模块的使用方法_Python学习06_函数和模块的使用

    引入 在写有些代码的时候,会发现有些步骤重复了多次,他也不像循环,都是相同的东西在重复,而是指做某件事情的步骤方法,做事的人或对象发生了改变,但是方法却没有改变. 要想写出高质量的代码,首先要解决的就 ...

  4. python巩固函数和模块_Python学习教程6:函数,模块和类的使用

    Python函数 定义 函数是组织好的,可重复利用的,用来实现单一,或相关联功能的代码片段. 函数能提高应用的模块行,使代码逻辑更加的条理清晰. 内建函数 内建函数是Python中自带的,可供用户重复 ...

  5. python3常用模块_Python学习笔记三(常用模块)

    Python 学习笔记三 (常用模块) 1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称( ...

  6. python中字符串常量可以用任意多个引号括起来_Python学习(二):基础

    第2 章 基础 Table of Contents 输入和输出 输出 输入 数据类型 整数 浮点数 字符串 布尔值 空值 变量 常量 输入和输出 输出 print()在括号中加上字符串,就可以向屏幕上 ...

  7. python写gui、主体程序必须放进函数里吗_Python学习(二):使用TKinter进行GUI程序设计...

    小例子 Tkinter(T-K-Inter)模块包含创建各种GUI(图形用户界面设计)的类.Tk创建一个放置GUI小构件的窗口(即可视化组件). from tkinter import * # 导入t ...

  8. python三种基本控制结构_Python学习手册之控制结构(一)

    在上一篇文章中,我们对 Python 进行了简单介绍和介绍了 Python 的基本语法,现在我们继续介绍 Python 控制结构. 查看上一篇文章请点击:https://www.cnblogs.com ...

  9. python字符串字面量有哪四种定义方式_Python学习笔记(四)字符串型

    字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言 ...

最新文章

  1. 怎样往csdn上传自己的demo
  2. 可以估计不确定性的神经网络:SDE-Net
  3. 任铄 计算机操作系统,计算机组成与体系结构-CSDN.PDF
  4. 纯js制作的弹球游戏
  5. 以源码编译的方式安装PHP与php-fpm
  6. Sass学习笔记 -- 初步了解函数、运算、条件判断及循环
  7. Java多线程编程那些事:volatile解惑--转
  8. 刚毕业的参加工作的黄金时期的核心策略:打好基础
  9. android handler,Android中Handler原理
  10. ib网卡命令_infiniband交换机配置命令总结
  11. linux安装nord,卸载nord源
  12. android activity详解一:概述
  13. 属性子集选择的基本启发方法_Java机器学习库(Java ML)(三、特征选择)
  14. 路透社:美国打算限制英伟达等与中国人工智能界合作
  15. HDFS 读取、写入、遍历文件夹获取文件全路径、append
  16. 继承性(HTML、CSS)
  17. 软件设计师--中级 学习笔记(2)
  18. 远程桌面 中断计算机连接不上,中断远程桌面连接解决方案
  19. 江苏赛区|2021年数学建模国赛江苏赛区获奖名单
  20. 企业利用进销存软件可优化库存管理

热门文章

  1. win7系统如何提高电脑运行速度
  2. spring(java,js,html) 截图上传
  3. three.js 把geometry转换成BufferGeometry
  4. stringbuffer判断是否为空
  5. Java IO流之PrintStream分析
  6. Java 中访问路径的问题
  7. 控制台出现Failed to bind properties under ‘spring.datasource‘ to javax.sql.DataSource
  8. 封装html ui 控件,聊聊前端 UI 组件:组件设计
  9. 99行不用指针 c语言贪食蛇,关于C语言指针的问题
  10. python变量类型有几种_python十种变量类型