day22 包,相对/绝对路径
包
包是一个文件夹,也是一个模块,只是为了区分单个文件的模块,称之为包。因为单纯的文件夹无法作为模块,文件夹内的_init_.py(写死/规定)文件才是真正需要的东西
所以本质上,包就是一个带_init_.py的文件夹。
包被导入时发生的三件事
import aaa
- 打开aaa里_init_.py文件
- Python解释器解释运行 __init__.py文件,把__init__.py里的名字丢入aaa模块的名称空间
- 导入aaa其实就是导入__init__里的名字
- 和模块不同的地方在于:模块是直接打开文件,而包是打开里面的_init_.py文件
为什么要有包
- 模块内的函数太多了,不方便管理,需要把一个模块分成多个,但是分开后导入方式就变了。所以就有了包,可以起到一个类似于函数装饰器的作用
- 好处:不改变模块原先的导入方式,并且简化模块开发者的管理复杂度
相对路径
from .aaa import *
.代表当前..代表上一级...代表上一级的上级
相对路径的好处在于:万一包的名字改变了,使用相对路径不会对包内的名字造成任何影响
- 相对路径是相对当前文件本身而言
.号前面必须是一个包,不能是一个模块- 当文件是执行文件时,不能使用相对路径
绝对路径
- 文件本身的路径
day22 包,相对/绝对路径的更多相关文章
- springBoot 项目war包部署及改为war包后资源路径错误问题
参考资料: https://blog.csdn.net/rico_zhou/article/details/83415114 https://blog.csdn.net/pz641/article/d ...
- linux下 彻底修改python的包/模块导入路径
python模式下,有时候需要导入 import某些模块或者包.明明这个模块/包是存在的,却提示导入错误,比如,“ImportError: No module named lxml”. 但是当你在命 ...
- 22.访问jar包下资源路径里的文件
访问jar包下资源路径里的文件 因为打包路径和你构建的代码路径是有差异的,想要查看真实的路径情况,可以查看编译后的classes目录下的文件结构. 想要获取资源文件流: private InputSt ...
- mysql 开发进阶篇系列 30 数据库二进制包(安装指定路径,目录介绍)
一. 指定路径 在上一篇里,二进制包解压后,全部放入在/usr/local/mysql目录下,在安装时指定了基础目录和数据目录, --basedir=/usr/local/mysql --datadi ...
- 获取jar包当前的路径
转自:http://kinganpo.iteye.com/blog/876243 import java.io.File; /** * 获取打包后jar的路径信息 * @author Administ ...
- jmeter的Classpath即类或者jar包的搜索路径设置
对于master-slave模式,插件和依赖都需要放到slave上才能生效,并且需要重启slave使插件生效 查看配置文件:apache-jmeter-3.1/bin/jmeter.propertie ...
- struts2,hibernate等模板配置文件在jar包中的路径,以及所需要的包
一.struts2 1.struts的配置模板文件struts-default.xml的位置: struts-2.3.16.1 --> src --core --> src --> ...
- java war包 路径--解决war包中文件路径问题
https://blog.csdn.net/u013409283/article/details/51480948 转自:http://free-chenwei.iteye.com/blog/1507 ...
- django-导入应用包的搜索路径
创建应用包 在 settings.py注册和配置urls.py中要按顺序导入包名和应用名 settings.py INSTALLED_APPS = ( 'django.contrib.admin', ...
随机推荐
- eclipse中 使用maven搭建ssh项目 思路复习(含有pom.xml)
首先在web.xml中配置监听器 在服务器启动的时候 进行bean对象的创建(只会创建单例对象 dao service 多例对象action可不会创建 每个多例对象是不同的 创建了有什么意义呢 ...
- Spring Cloud-Ribbon ILoadBalancer负载均衡器核心源码(四)
Ribbon负载均衡相关类 AbstractloadBalancer ILoadBalancer的抽象实现类 public abstract class AbstractLoadBalancer im ...
- 2017年JavaScript框架---Top5
前言 个人观点,供您参考 观点源自作者的使用经验和日常研究 排名基于框架的受欢迎度, 语法结构, 易用性等特性 希望大家能够基于此视频找到最适合自己的框架 下面介绍的都是严格的前端框架和库 前言 To ...
- ZooKeeper搭建系列集 (这套很全,也很详细)
原文链接:http://blog.csdn.net/shatelang/article/details/7596007 本篇文章结构: 总共包括10个系列 ZooKeeper系列之一:ZooKeepe ...
- Project Euler18题 从上往下邻接和
题目:By starting at the top of the triangle below and moving to adjacent numbers on the row below, the ...
- 一次获取多个oracle序列值
一次获取多个oracle序列值 学习了:http://blog.csdn.net/wangchsh2008/article/details/53495961 select seq_one.nextva ...
- HDU 3104 Combination Lock(数学题)
题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=3104 Problem Description A combination lock consists ...
- hdu2430 Beans 单调队列
// hdu2430 Beans 单调队列 // // 题目意思: // 求一个sum%p<=k的max(sum/p) // // 结题报告: // 技巧,先求出前缀和,并记录前i项对p取余的值 ...
- GStreamer基础教程02 - 基本概念
摘要 在 Gstreamer基础教程01 - Hello World中,我们介绍了如何快速的通过一个字符串创建一个简单的pipeline.为了能够更好的控制pipline中的element,我们需要单 ...
- A - Translation
Problem description The translation from the Berland language into the Birland language is not an ea ...