You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python导入RE父类时会执行OS相关代码却未导入CSV模块?

问题原因解析
  • Python的模块导入机制是加载并执行整个模块的顶层代码,不管你只导入模块中的某一个类或函数。所以你在parent.py里写的OS相关打印、目录切换代码,如果是放在类/函数外部的顶层代码,就会在from parent import RE时被自动执行。
  • 至于CSV模块没出现在child.py的命名空间里:from parent import RE的作用只是把parent模块中的RE类单独导入到当前命名空间,parent模块自身导入的CSV模块属于parent模块的私有命名空间,不会被自动带到child.py里。除非你显式写from parent import csv,或者在parent.py里把csv模块作为导出对象,否则child.py访问不到。
  • 要避免顶层代码在导入时执行,把这些操作放到if __name__ == "__main__":代码块里就行——这个判断只有在直接运行parent.py时才会成立,导入时不会执行块内代码。

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 21:07:05