为什么导入random模块时会出现TypeError: 'module' object is not callable?
我正在使用Python 2.6,想要运行一个简单的随机数生成器程序(random.py):
import random
for i in range(5):
# random float: 0.0 <= number < 1.0
print random.random(),
# random float: 10 <= number < 20
print random.uniform(10, 20),
# random integer: 100 <= number <= 1000
print random.randint(100, 1000),
# random integer: even numbers in 100 <= number < 1000
print random.randrange(100, 1000, 2)
现在我遇到了以下错误:
C:\Users\Developer\Documents\PythonDemo>python random.py
Traceback (most recent call last):
File "random.py", line 3, in <module>
import random
File "C:\Users\Developer\Documents\PythonDemo\random.py", line 8, in <module>
print random.random(),
TypeError: 'module' object is not callable
C:\Users\Developer\Documents\PythonDemo>
我查阅了Python的文档,这个版本的Python是支持随机数的。难道我还漏掉了什么吗?
4 个回答
3
编辑: 看起来你的文件名和内置的随机模块是一样的,所以你应该把文件名改成其他的,正如其他人建议的那样。
但是在那之后,你还需要修改你的代码来初始化随机类。
rand=random.Random()
rand.uniform(10, 20)
另外,对于其他人来说,你是直接调用模块本身,而不是随机类。
>>> for i in range(5):
... # random float: 0.0 <= number < 1.0
... print rand.random(),
...
... # random float: 10 <= number < 20
... print rand.uniform(10, 20),
...
... # random integer: 100 <= number <= 1000
... print rand.randint(100, 1000),
...
... # random integer: even numbers in 100 <= number < 1000
... print rand.randrange(100, 1000, 2)
...
0.024357795662 12.3296648076 886 478
0.698607283236 16.7373296747 245 638
0.69796131038 14.739388574 888 482
0.543171786714 11.3463795339 106 744
0.752849564435 19.4115177118 998 780
>>>
7
把你的示例程序文件改名为 myrandom.py 或者其他类似的名字。你可能搞混了导入的内容。
23
给你的文件起个别的名字。在Python中,一个脚本实际上就是一个模块,而模块的名字是由文件名决定的。所以当你在文件 random.py
中使用 import random
时,你就会在模块结构中形成一个循环。