从不同的模块导入随机数

时间:2018-10-16 18:59:46

标签: python module

我是python的新手,需要您的帮助才能更好地了解如何使用模块。

假设您有两个模块a.pyb.py

a.py 具有以下代码行

import b
import random

a = random.random()
print(a)

b.py具有以下代码行:

b = random.random()
print(b)

但是,当我运行代码时,会收到以下消息:

E0602:Undefined variable 'random'

这是问题还是逻辑上的?

1 个答案:

答案 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)