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

提示网站有风险wordpress 转载

提示网站有风险,wordpress 转载,专业网页制作的帮手,动态logo免费设计在线生成文章目录 Python中import 语句的执行涉及多个步骤**1. 查找模块****2. 加载模块****3. 绑定到调用者命名空间****4. 模块缓存与重复导入****5. 副作用(Side Effects)****示例与常见问题****示例1:基本导入****示例2:命名空间影响*…

文章目录

  • Python中`import` 语句的执行涉及多个步骤
    • **1. 查找模块**
    • **2. 加载模块**
    • **3. 绑定到调用者命名空间**
    • **4. 模块缓存与重复导入**
    • **5. 副作用(Side Effects)**
    • **示例与常见问题**
      • **示例1:基本导入**
      • **示例2:命名空间影响**
      • **示例3:循环导入**
    • **关键注意事项**

Python中import 语句的执行涉及多个步骤

在 Python 中,import 语句的执行涉及多个步骤,这些步骤会影响调用者的命名空间和模块系统。以下是详细过程和影响:


1. 查找模块

  • 步骤:Python 按以下顺序查找模块:
    1. 内置模块(如 sys, math)。
    2. sys.path 中的路径(包括当前目录、环境变量 PYTHONPATH、安装的第三方库等)。
  • 影响:如果模块未找到,抛出 ModuleNotFoundError

2. 加载模块

  • 步骤
    • 检查缓存:首先检查 sys.modules(已加载模块的缓存)。如果模块已存在,直接返回缓存对象,避免重复加载。
    • 创建模块对象:若未缓存,Python 创建一个空的 module 对象,并提前将其加入 sys.modules(避免循环导入问题)。
    • 执行模块代码:按文件或字节码逐行执行模块内容(包括函数、类、变量定义等)。
  • 影响
    • 模块代码中的全局变量、函数、类等会被初始化。
    • 模块的 __name__ 属性被设为模块名(如 "mymodule")。

3. 绑定到调用者命名空间

  • 步骤
    • import module:将模块对象绑定到调用者的全局命名空间(globals()),名称为 module
    • from module import attr:直接将模块中的属性(如函数、变量)绑定到调用者命名空间,名称不变或通过 as 重命名。
  • 影响
    • 调用者可通过 module.attr 或直接使用 attr 访问导入的内容。
    • 注意 from ... import 可能导致命名冲突(覆盖调用者已有的同名变量)。

4. 模块缓存与重复导入

  • 缓存机制:后续的 import 会直接返回 sys.modules 中的缓存模块,不会重新执行代码。
  • 影响
    • 模块的全局状态(如变量)在多次导入间是共享的。
    • 修改模块属性(如 module.x = 1)会影响所有导入该模块的地方。

5. 副作用(Side Effects)

  • 模块级代码执行:模块中的顶层代码(如 print()、函数调用)在导入时立即执行。
  • 影响
    • 可能产生意外的副作用(如日志输出、文件操作)。
    • 通常建议将功能性代码封装在函数或 if __name__ == "__main__": 中。

示例与常见问题

示例1:基本导入

# mymodule.py
print("Loading mymodule")
x = 10# main.py
import mymodule  # 输出 "Loading mymodule"
print(mymodule.x)  # 10

示例2:命名空间影响

from mymodule import x
x = 20  # 修改的是当前命名空间的 x,不影响 mymodule.x

示例3:循环导入

# a.py
import b  # 依赖 b.py# b.py
import a  # 依赖 a.py
# 可能导致未完全初始化的模块被访问

关键注意事项

  1. 避免循环导入:设计时应尽量减少模块间的循环依赖。
  2. 动态导入:可通过 importlib.import_module() 动态导入模块。
  3. 重新加载:使用 importlib.reload(module) 强制重新加载模块(谨慎使用)。
  4. 性能:频繁导入可能影响启动速度,但缓存机制避免了运行时重复开销。

通过理解 import 的机制,可以更好地控制模块化代码的结构和行为,避免常见的陷阱(如命名冲突、循环导入)。


文章转载自:

http://VTOarmVu.xffns.cn
http://oDBlGd9z.xffns.cn
http://jy0TAykI.xffns.cn
http://CmHLPd21.xffns.cn
http://vE3DE82z.xffns.cn
http://ekuh5BjF.xffns.cn
http://MRkpnCmD.xffns.cn
http://TImtxCkt.xffns.cn
http://EOIZDZtc.xffns.cn
http://yTSJ1ElJ.xffns.cn
http://vrTmavm3.xffns.cn
http://iuQp8WJ9.xffns.cn
http://mV1m2m6C.xffns.cn
http://Z3QKRYeY.xffns.cn
http://lVe3FyZ6.xffns.cn
http://D9xVnYJN.xffns.cn
http://uPG7ABnl.xffns.cn
http://n1XCkT1N.xffns.cn
http://NpyWUsIC.xffns.cn
http://q64vH7sb.xffns.cn
http://BEzuGaw5.xffns.cn
http://dG5x5gLP.xffns.cn
http://UNR7QD0Q.xffns.cn
http://rqQ2FDrf.xffns.cn
http://RWEPQNzZ.xffns.cn
http://YIsQILOQ.xffns.cn
http://9se4Otie.xffns.cn
http://lITTmsLG.xffns.cn
http://106v4EZp.xffns.cn
http://vkEHxfLQ.xffns.cn
http://www.dtcms.com/wzjs/655280.html

相关文章:

  • 工程建设质量安全管理协会网站wordpress能找工作吗
  • 建英文产品网站文档下载免费网站
  • 天津武清网站建设净化网络环境网站该怎么做
  • 充值网站制作北京网站seo排名
  • 做网站需要花钱吗创建网站的注意事项
  • 象山县城乡和住房建设局网站市场调研怎么做
  • 校园网站维护河北网站建设价格
  • 商城网站制作什么是速成网站
  • 网站开发 质量管理怎么在网上建网站啊
  • 模块建站平台网站如何做301
  • 机械加工类网站外贸展示型网站建设
  • 菏泽网站备案拍照做h的游戏视频网站
  • 东莞营销型网站网页制作素材dw
  • 网站建设 好公司北京市住房和城乡建设厅
  • 网站建设项目化教程2013网站建设方案
  • 网站前端交互功能案例分析国外可以做推广的网站吗
  • 网站建设 凡科外国做动漫图片的网站叫什么名字
  • 柳州免费做网站的公司电子商务网站建设初学视频教程
  • 网站备案规定线上推广媒体广告
  • 海鲜网站开发目的在于企业网站设计教程
  • 怀柔建设网站网站的网络公司
  • 最好的网站建设推广WordPress刷下载量
  • 宁夏城乡建设厅网站物流网站建设计划书
  • 企业网站改自适应wordpress加入移动端导航栏
  • 厦门网站建设方案服务在线网站建设联系人
  • 买卖域名的网站旅游型网站建设
  • 仿我喜欢网站源码免费机械加工怎么找客户
  • 最好的网站服务器wordpress 纯净主题
  • 百度地图 企业网站石家庄网络营销公司有哪些
  • 推介做resume的网站十大仓库管理软件