您的位置:首页 > 编程语言 > Python开发

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 语句。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: