当前位置: 首页 > news >正文

python系列教程224——导入只发生一次

朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

模块会在第一次import或from时载入并执行,并且只在第一次如此。这是有意而为之的,因为该操作开销较大。在默认的情况下,Python只对每个文件的每个进程做一次操作。之后的导入操作都只会取出已加载的模块对象。

下面创建一个文件simple.py。

print('hello')

spam = 1        # Initialize variable

此例中,print和=语句在模块第一次导入时执行,变量spam也在导入时初始化:

% python

>>>import simple        # First import: loads and runs file's code

hello

>>>simple.spam          # Assignment makes an attribute

1

第二次和其后的导入并不会重新执行此模块的代码,只是从Python内部模块表中取出已创建的模块对象。因此,变量spam不会再进行初始化:

>>>simple.spam = 2    # Change attribute in module

>>>import simple      # Just fetches already loaded module

>>>simple.spam        # Code wasn't rerun: attribute unchanged

2

当然,有时需要一个模块的代码导入后再一次运行。我们将会在稍后介绍如何使用内置函数reload时来实现这种操作。

点赞,关注,谢谢!

相关文章:

  • 【python将字符串按‘/‘和‘\‘分割开】
  • 【DevOps】深入理解 Nginx Location 块:配置示例与应用场景详解
  • k8s node NotReady后会发生什么?
  • 【MySQL】表的增删查改
  • 探索最新潮流:AI配音技术的崛起
  • 7个常见的SQL慢查询问题及其解决方法
  • 【数据库基础】基本认识数据库--入门引导
  • 用Dockerfile和Shell脚本来部署一个Go项目
  • 15:00面试,15:08出来,面试问的有点变态。。。。
  • 《王者荣耀》4月狂揽2.34亿美元 单日流水1亿美元 全球销量第二
  • 新一代开源爬虫平台:SpiderFlow
  • conda activate 报错:conda: error: argument COMMAND: invalid choice: ‘ctivate‘解决
  • JDK、JRE、编译指令和垃圾回收机制详解
  • Linux 查询开机时间
  • ubuntu手动替换源后,更新源时提示“仓库.... jammy Release“ 没有Release文件
  • 《QT实用小工具·六十四》QT实现仿Windows消息通知控件可交互
  • CentOS7安装Redis
  • C语言游戏实战(12):植物大战僵尸(坤版)
  • 深度学习中特征(tensor)维度转换
  • 数据链路层简单介绍
  • 济南高新区一季度GDP增长8.5%,第二产业增加值同比增长14.4%
  • 上海“模速空间”:将形成人工智能“北斗七星”和群星态势
  • 深入贯彻中央八项规定精神学习教育中央指导组派驻地方和单位名单公布
  • 15世纪以来中国文化如何向欧洲传播?《东学西传文献集成初编》发布
  • 论法的精神︱张玉敏:知识产权保护要为社会经济文化发展服务
  • 三位成功女性,如何应对失败