朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow
声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写(有时候有空也会参与编写),所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!
为了丰富学员们的课外知识,老师让我们助理分享这套Python系列教程。由于Python教程并非老师所写,所以不如老师的AI教学风趣幽默,望大家见谅!(有时老师也会参与编写)。想要学习AI技术的新朋友可以去www.captainbed.cn。本公众号由助理负责运营,只免费分享课外知识,不回复任何私信。PS:看不懂本篇文章的同学请从前面的文章看起,循序渐进每天学一点就不会觉得难了!
下面通过一个实例来帮助大家更好地理解包导入。下列给出了三个包含简单代码的文件,它们分别位于目录dir1和dir2中——这些文件的路径名会在注释中给出(老铁!#号后面的就是注释哦):
# dir1\__init__.pyprint('dir1 init')x = 1# dir1\dir2\__init__.pyprint('dir2 init')y = 2# dir1\dir2\mod.pyprint('in mod.py')z = 3
这里,dir1要么是我们工作目录的子目录(工作目录就是程序代码所在的目录),要么就是位于模块搜索路径中的一个目录的子目录。
import语句会在每个目录首次遍历时,执行该目录的初始化文件。print语句加在了初始化文件中,可以用来跟踪文件的执行顺序。此外,就像模块文件一样,任何已导入的目录也可以传递给reload,来强制该目录重新被执行。就像下面展示的那样,reload可以接受点号路径名称,来重载目录和文件。
% python>>>import dir1.dir2.mod # First imports run init filesdir1 initdir2 initin mod.py>>>>>>import dir1.dir2.mod # Later imports do not>>>>>>from imp import reload # Needed in 3.0>>>reload(dir1)dir1 init<module 'dir1' from 'dir1\__init__.pyc'>>>>>>>reload(dir1.dir2)dir2 init<module 'dir1.dir2' from 'dir1\dir2\__init__.pyc'>