我是python的新手,需要您的帮助才能更好地了解如何使用模块。
假设您有两个模块a.py
和b.py
。
a.py
具有以下代码行
import b
import random
a = random.random()
print(a)
和b.py
具有以下代码行:
b = random.random()
print(b)
但是,当我运行代码时,会收到以下消息:
E0602:Undefined variable 'random'
这是问题还是逻辑上的?
答案 0 :(得分:2)
这是合乎逻辑的,因为您没有在random
文件中定义一个名为b.py
的变量。模块(例如b.py
具有其自身的作用域),因此,除非您引用 builtin 变量或导入变量,否则不会加载该变量。
这是有道理的,因为否则导入另一个模块可能会完全更改另一个模块中的变量。因此,这将导致“不稳定”的实现。此外,即使这可行(至少在不使用某些会改变导入过程的“ hackish”函数的情况下也无法实现),您还是在导入random
之后导入b
,因此在导入时b
,您甚至都没有加载random
模块。
因此,您可以将其用于:
文件 a.py
:
import b
import random
a = random.random()
print(a)
文件 b.py
:
import random
b = random.random()
print(b)