Python中模块导入之版本二与三的区别
2018-01-02 21:48
399 查看
事先声明,这些乃是本人学习 Python 目录规范时碰到了问题,然后通过不断尝试出来的,这里做了一个总结,仅供大家参考,如有错误欢迎指正,我是在 Ubuntu 上用 pycharm 试,并不能保证 Windows 下同样适用(而且,shell 中和pycharm中不同,不知道为啥)。
下级目录导入上级目录中的模块,可以直接导入,如图
Python 3 中导入上级目录模块
Python 2中 导入上级目录模块
Python 2 中同级目录可以直接导入
但如果加了 init.py 文件可以让导入时 pycharm 识别到这个模块,会有导入的提示
Python 3 不能直接导入同级目录,即使存在 init.py
应该这样导入,从这两个模块的共同父亲开始
即使没有 init.py 文件同样可以导入
上级目录,导入下级目录中的模块
Python 3 不需要 init.py 只要一层一层的导入就行
Python 2 则需要被导入的下级目录中的模块是在一个包中,即有 init.py
加上 init.py 即可
总结:就是版本3 中弱化的 init.py 的作用,但如果上级目录需要导入下级目录的模块,需要一层层的导入。
import module
其实就是将 module.py 文件解释执行,并赋给了 module 这个变量,如果我们需要调用 module.py 中写好的某个函数,可以直接调用 module.func(),
import package
其实就是执行了 package 下的 init.py 文件,这个可以很简单的尝试,只需要在 init.py 文件中加上一条 print 语句,再在某个模块中导入这个包,就会发现,会执行 print 语句。
相同点
没有相同之处,何来不同之分;聊区别之前,先看一下相同的部分。下级目录导入上级目录中的模块,可以直接导入,如图
Python 3 中导入上级目录模块
Python 2中 导入上级目录模块
不同点
同级目录之间相互导入Python 2 中同级目录可以直接导入
但如果加了 init.py 文件可以让导入时 pycharm 识别到这个模块,会有导入的提示
Python 3 不能直接导入同级目录,即使存在 init.py
应该这样导入,从这两个模块的共同父亲开始
即使没有 init.py 文件同样可以导入
上级目录,导入下级目录中的模块
Python 3 不需要 init.py 只要一层一层的导入就行
Python 2 则需要被导入的下级目录中的模块是在一个包中,即有 init.py
加上 init.py 即可
总结:就是版本3 中弱化的 init.py 的作用,但如果上级目录需要导入下级目录的模块,需要一层层的导入。
import module
其实就是将 module.py 文件解释执行,并赋给了 module 这个变量,如果我们需要调用 module.py 中写好的某个函数,可以直接调用 module.func(),
import package
其实就是执行了 package 下的 init.py 文件,这个可以很简单的尝试,只需要在 init.py 文件中加上一条 print 语句,再在某个模块中导入这个包,就会发现,会执行 print 语句。
相关文章推荐
- Python模块导入代码区别
- python的2.5与2.7版本中ftp模块的一个小区别
- 【Python】Python 三种导入模块的方法和区别
- Python学习_Python 3.X版本导入httplib模块报ImportError解决方案
- Python 三种导入模块的方法和区别
- Python中导入包中模块的方法及区别
- python的2.5与2.7版本中ftp模块的一个小区别
- python模块的导入的两种方式区别详解
- Python 三种导入模块的方法和区别
- python中模块导入语句 from ..import ..与from import as的区别
- Python 三种导入模块的方法和区别
- ubuntu环境下安装python3,配置文件正常导入自定义模块
- python引入导入自定义模块和外部文件
- [导入]AJAX .NET版本之间的区别
- python 模块导入问题详解
- Python2.x与3.x版本区别
- python导入模块的方法
- python之导入模块
- Python基础教程(十二):GUI编程、版本区别、IDE
- python导入父级目录模块