2024-04-23 15:01:07 发布
网友
#file cf.py a=1 import cf print(cf.a)
sys.modules
cf
cf.py
cf.a
顺便说一句,我不知道你说的“和在控制台1次”是什么意思。但是,你又没有解释清楚你做了什么。当我从控制台运行cf.py时,我看到1两次,出于同样的原因,我刚才解释了:
1
$ python cf.py 1 1
sys.modules
中为其创建一个条目。sys.modules
是一个dict,将模块名映射到模块代码。同一模块的所有后续导入都会在sys.modules
中找到该模块的名称,只需从sys.modules
dict中检索该模块的代码即可。因此,模块中的代码在第一次导入时只执行一次。这就是为什么从cf
内导入cf
不会产生错误的原因。你知道吗cf.py
,并在该窗口中运行了模块(F5)。好的。然后IDLE运行文件中的代码。这与导入不同:它直接在cf
中运行代码。运行该代码的一部分是导入cf
,它打印cf.a
。运行代码的另一部分是-再次!-打印cf.a
。所以你才看了两遍。你知道吗顺便说一句,我不知道你说的“和在控制台1次”是什么意思。但是,你又没有解释清楚你做了什么。当我从控制台运行
cf.py
时,我看到1
两次,出于同样的原因,我刚才解释了:相关问题 更多 >
编程相关推荐