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

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

解决方法

a. 需要关闭impyhon3环境,重新导入

b. 使用reload

关于reload的用法,它属性imp模块,文档详情如下图所示:

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

python核心编写视频笔记--模块的导入的更多相关文章

  1. Python核心编程--学习笔记--3--Python基础

    本章介绍基本的Python语法.编程风格:并简要介绍标识符.变量和关键字,以及变量占用内存的分配和回收:最后给出一个较大的Python样例程序来体验这些特性. 1 语句和语法 1.1 注释 可以在一行 ...

  2. Python 2.7 学习笔记 模块和包

    我们来考虑下如下几种场景: 1.编写一个python程序,如果程序比较简单,则可以把代码放到一个python文件中.但如果程序功能比较多,可能需要多个python文件来组织源代码.而这些文件之间的代码 ...

  3. Python核心编程--学习笔记--4--Python对象

    现在开始学习Python语言的核心部分.首先了解什么是Python对象,然后讨论最常用的内建类型,接下来讨论标准类型运算符和内建函数,之后给出对标准类型的不同分类方式,最后提一提Python目前还不支 ...

  4. Python核心编程--学习笔记--9--文件和输入输出

    本章将深入介绍Python的文件处理和相关输入输出能力,包括:文件对象(以及它的内建函数.内建方法和属性),标准文件,文件系统的访问方法,文件执行,最后简要涉及持久存储和标准库中与文件有关的模块. 1 ...

  5. Python核心编程--学习笔记--8--条件与循环

    本章讲述if.while.for以及与他们搭配的else.elif.break.continue.pass等语句. 1 if语句 语法:三部分——关键字if.条件表达式.代码块.(记住冒号) if c ...

  6. Python核心编程--学习笔记--6--序列(下)列表、元组

    11 列表 类似于C语言的数组,但是列表可以包含不同类型的任意对象.列表是可变类型. 创建列表——手动赋值.工厂函数: >>> aList = [12, 'abc'] >> ...

  7. Python核心编程--学习笔记--2--Python起步(下)

    16 文件和内建函数open(),file() 打开文件: fobj = open(filename, 'r') for eachLine in fobj: print eachLine, #由于每行 ...

  8. Python核心编程--学习笔记--1--Python简介

    本章介绍了Python的背景知识,包括什么是Python.Python的起源以及Python的一些关键特性. 1 什么是Python Python是一门优雅而健壮的编程语言,它继承了传统编译语言的强大 ...

  9. 《Python核心编程》笔记

    1 python是大小写敏感的 2 遍历一个字典的键值: for a in dict_obj.keys(): print a 3 列表解析功能可以让代码很简洁,比如:squared = [x ** 2 ...

随机推荐

  1. react入门到进阶(三)

    一.react样式 1.内联样式 在以前写html+css的时候,引入css的时候有一种方法就是内联,而在react中又有些不一样,样式是用变量的形式,如下 const styleComponentH ...

  2. #openstack故障处理汇总

    ##openstack故障处理汇总 排错 openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ############# ...

  3. MySql基础入门-mysql的结构层次

    了解MySql必须牢牢记住其体系结构图,Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的. 1.Connectors指的是不同语言中与SQL的交互 2.Management Servei ...

  4. MySQL管理员珍藏:十大必备工具盘点

    作者:dongdongzzcs 第1页: [IT168 专稿]本文的作者Daniel Nichter是MySQL工具的开发者,他为MySQL管理员推荐了十款必备工具.以下是全文内容: MySQL是一套 ...

  5. linux crontab yum安装

    crontab工具来做计划任务,定时任务,执行某个脚本等等 1.检查是否已安装crontab # crontab -bash: crontab: command not found 执行 cronta ...

  6. ios应用程序国际化

    1.程序名称国际化: 在Xcode中新建项目后,能够在project的info选项卡中找到Localization的项目,能够加入应用程序须要支持的国际语言. 回到项目中能够发如今InfoPlist. ...

  7. Ansible@一个高效的配置管理工具--Ansible configure management--翻译(一)

    未经书面许可,请勿转载 ---      Ansible is the simplest way to automate apps and IT infrastructure 这是Ansible官方站 ...

  8. xml基本语法(2)

    本节要点: 了解XML的文档声明 了解XML的元素.命名规则.属性.元素内容.处理指令等概念 1 XML文档声明 表示该文档是一个XML文档,以及遵循哪个XML版本的规范. 规范:<?xml 版 ...

  9. python self

    Python要self的理由 Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数(self),但在调用这个方法的时候不必为这个参数赋值(显胜于隐的引发). Pyt ...

  10. 使用MyBatis缓存

    (1).为什么需要使用缓存:: MyBatis是一个持久层(数据库层)映射框架,在所有访问数据库的操作中,无疑数据查询是最耗费数据库资源的操作了,因为你一次可能需要查询成千上百万条记录(如果你不加限制 ...