python __path__ 变量
今天在读django源码的时候遇到了一个问题!它就是__path__这个系统变量
一、__path__变更初见:
由__path__这个变量的名字就知道,这个是一个系统变量,不是用户自定义的变量,于是第一想法就是看一下这个变量的值是多少?
创建一个叫/tmp/studio/main.py的脚本、内容如下:
#!/usr/local/python/bin/python3 if __name__=="__main__":
print(__path__)
执行结果如下:
[root@workstudio tmp]# ./main.py
Traceback (most recent call last):
File "./main.py", line , in <module>
print(__path__)
NameError: name '__path__' is not defined # 这说明python在作用域中并没有找到 __path__这个变量
二、事实上__path__变量是python包里的一个变量,它的值就是包所位于的操作系统路径:
1 构建工作目录
mkdir /tmp/studio
mkdir /tmp/studio/tools/
touch /tmp/studio/main.py
touch /tmp/studio/tools/__init__.py
2 用tree 看/tmp/studio
[root@workstudio tmp]# tree /tmp/studio/
/tmp/studio/
├── main.py
└── tools
└── __init__.py directory, files
3 /tmp/studio/tools/__init__.py的内容如下
[root@workstudio tools]# cat /tmp/studio/tools/__init__.py
print(__path__)
4 /tmp/studio/main.py的内容如下
[root@workstudio tools]# cat /tmp/studio/main.py
#!/usr/local/python/bin/python import tools if __name__=="__main__":
pass
5 运行/tmp/studio/main.py
[root@workstudio tools]# python3 /tmp/studio/main.py
['/tmp/studio/tools'] -- 看到了吧,这个就是由/tmp/studio/tools/__init__.py中print出来的
三、总结:
python中的__path__变量它的值就是它所在包的系统目录、也就是说不同包中的__path__这个变量的值是不同的
----
交流学习

python __path__ 变量的更多相关文章
- 配置python环境变量(转)
默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. 1.首先需要在系统中注册python环境变量:假设python的安装路 ...
- python学习 变量的操作 与 基本数据类型
一变量(本文使用python3.5): #变量:是计算机内存中的一块区域,变量可以存储规定范围内的值,变量可以改变#在python中变量是计算机内存中数据的引用 python的变量没有明显的类型,具体 ...
- python的变量传递
python中变量都被视为对象的引用.python函数调用传递参数的时候,不允许程序员选择传值还是传引用,python参数传递采用的都是“传对象引用”的方式. 这种方式相当于传值和传引用的结合 ...
- Python中变量的作用域(variable scope)
http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 #!/usr/bin/ ...
- Windows下python环境变量配置
默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. 1. 首先需要在系统中注册python环境变量:假设python的安装 ...
- windows7下python环境变量配置
默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行或cmd里直接使用python命令. 1. 首先需要在系统中注册python环境变量:假设pyth ...
- FAQ:Python环境变量配置
Python安装安装成,需要配置环境变量: 默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. 1. 首先需要在系统中注册 ...
- python基础(2):python的变量和常量
今天看看python的变量和常量:python3 C:\test.py 首先先说一下解释器执行Python的过程: 1. 启动python解释器(内存中) 2. 将C:\test.py内容从硬盘读入内 ...
- python __name__ 变量的含义
python __name__ 变量的含义 if __name__ == '__main__': tf.app.run() 当python读入程序时,会初始化一些系统变量.如果当前程序是主程序,__n ...
随机推荐
- 【转】C与CPP后缀的文件在编译时的区别
本文出处连接, by Ray FAN(ielnaf@qq.com) ...
- Tui-x 基础使用
本章以Tui-x3.x仓库里的HelloTuiCpp项目来做具体解说.[ 由于HelloTuiCpp里面演示的全部控件,本文篇幅有限,不能一一说明,所以仅仅能列举两个控件,后面的文章会有针对性地解说其 ...
- c++学习之多态(虚函数和纯虚函数)
c++是面向对象语言,面向对象有个重要特点,就是继承和多态.继承之前学过了,就是一种重用类的设计方式.原有的类叫父类,或者基类,继承父类的类叫子类.在设计模式中,我们总是要避免继承,推荐用组合.因为继 ...
- 【版本】API NDK 系统 分辨率 统计
Android版本号 版本 API/NDK版本号 代号 发布时间 7.1.1 25 Nougat 7 ...
- JSP学习笔记(二):动作元素
与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用.JSP动作元素是用XML语法写成的. 利用JSP动作可以动态地插入文件.重用JavaBean组件.把用户重定向到另外的页面.为Java插件 ...
- 浏览器自动化测试初探 - 使用phantomjs与casperjs
收录待用,修改转载已取得腾讯云授权 作者:yangchunwen 首先要解释一下为什么叫浏览器自动化测试,因为本文只关注发布后页面功能的自动化测试,也就是UI层面的自动化. 浏览器测试有别于js代码的 ...
- Nginx 内嵌lua脚本,结合Redis使用
0x00 Nginx 内嵌Lua脚本有下面特点: 20k个并发连接 Lua脚本能够在Nignx 11个层次的不同层次发挥作用,扩展Ngnix功能 Lua速度极快(寄存器指令) 0x01 应用场景 在w ...
- easyui window refresh 刷新两次解决办法
这样写刷新两次 $("#windowid").window('refresh','url01.php'); $("#windowid").window('ope ...
- matlab中的size(),length(),ndims()函数的使用方法
1.size()使用方法: size(a)表示矩阵每一个维度的长度 比方size([1 2 3;4 5 6]) 等于[2 3]: 表示他有2行3列. size([1 2 3]) 等于[1 3]: 表示 ...
- iOS核心动画 - CALayer
大家知道,在iOS中所有的视图都继承自UIView. UIView处理所有的触摸事件和画图. 事实上,UIView所有的渲染和动画是托管给另一个类来负责的,它就是CALayer. 但是,需要记住的是, ...