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

如何从Python脚本仅导入指定变量,避免执行原脚本冗余代码

如何在Python中导入变量而不执行脚本中的其他代码?

嘿,这个问题我之前也碰到过!当你从另一个脚本导入变量时,Python会默认执行整个被导入的脚本,所以script1.py里的print(a)和print(c)都会被触发,导致输出了额外内容。要实现只获取变量b的值,输出仅为5,最常用的解决方案是利用Python的__name__魔术变量区分脚本的运行场景。

解决方案:用if __name__ == "__main__":隔离执行代码

修改你的script1.py,把不需要在导入时执行的代码(比如那些print语句)放到if __name__ == "__main__":代码块中:

# script1.py
a = 7
c = 10
b = 5

# 只有当脚本被直接运行时,才执行下面的代码
if __name__ == "__main__":
    print(a)
    print(c)

原理说明

  • 当你直接运行script1.py时,__name__变量的值会是__main__,所以if块里的print(a)和print(c)会正常执行,输出7和10。
  • 当你在script2.py中导入script1的变量时,script1.py的__name__变量的值会是script1(也就是模块名),这时候if块里的代码不会被执行,只会完成变量的定义。

这时候运行你的script2.py:

# script2.py
from script1 import b
print(b)

输出就只会是5啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 08:12:38