Python编程笔记-模块导入

今天开始将新增python编程的内容。

1. 模块的重新导入

有这样的一种情况:我们首先创建了一个.py文件,输入模块代码。保存后,我们进入ipython3的环境,引入这个模块。然后再ipython3环境外修改这个模块文件,在ipython3的环境中引入的模块文件会不会相应发生变化?

答案是:不会同步发生变化,需要重新引入

示例过程如下:

1.1 打开终端,新建一个.py文件,并简单输入一个print语句:

1.2 新开一个终端,在同一个目录输入ipython3命令,并引入test.py模块,进行测试

1.3 在原来创建test.py的终端修改test.py文件,此时ipython3的窗口不能关闭

1.4 再在之前的ipython3的窗口里,调用模块中的方法,看是否输出second

结论是:外层修改后,没有同步发生变化,由上图可以看出,在未关闭的情况下,即便是重新再引入一遍,还是没有同步改变。

解决方法:需要关闭impyhon3环境,重新导入

2. 关于python中引入模块文件方式的说明

当我们输入import 模块文件名 时,python是怎么找到模块文件的?如果找不到,python会报No modeule named '模块文件名'的错误

在ipython3的环境下,引入sys模块,里面有个变量,叫sys.path。这个变量是一个列表,它每一个元素存储的就是模块搜索的路径。搜索顺序是按结果顺序。

如果我们想在其他目录加入模块,则可以sys.path.append('目录')即可。即如果想对搜索路径做任何操作,比如修改顺序,添加目录,都只需要对sys.path(列表)操作即可。

目录路径以 / 开着

相对目录不以 / 开头

3. 模块的循环导入

a模块中引入了b,b模块中引入了a,结果会怎样?

答案是会报错

解决办法:抽取一个模块,专门用来调用,需要a就调用a,需要b就调用b

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180104G0HF8V00?refer=cp_1026

扫码关注云+社区