书中有这样一个代码示例:
from random import*
for i in range(15):
print random.randrange(3,13,3)
这在书中也有结果。
但是当我在Netbeans中运行它时。出现以下情况:
*
Traceback (most recent call last): File "C:\Users\Lacces\Documents\NetBeansProjects\Python_GS_Tanuljunk_meg_programozni\src\Adatszerkezetek\Lista.py", line 11, in print random.randrange(3,13,3) #3-tól 13-ig, 3 érték elválasztásal AttributeError: 'builtin_function_or_method' object has no attribute 'randrange'
*
我打电话来帮助谷歌,我找到了这个用于导入的:
import random
我用这个代替了随机导入的
而且成功了!不例外!
有人能给我解释一下为什么第一次抛出异常,为什么第二次不抛出异常(对于初学者来说:)
当您
from random import *
时,random
中的所有定义都将成为当前名称空间的一部分。这意味着您不必在任何东西前面加上random.
前缀,但这也意味着您可能会在不知道名称的情况下发生名称冲突。首选方法是
import random
。由于这些令人惊讶的副作用,不鼓励从模块中导入所有内容:模块
random
包含一个函数random,因此import * from random
执行以下操作:现在,当您访问
random
时,您访问的是函数,而不是模块。您可以使用randrange
(不带前缀random.
),但是import random
和显式说明函数来自哪个模块是更好的主意。如果使用“from moduleName import….”,则会获取在导入后指定的所有类、函数和变量,如果指定*,则会获取所有类、函数和变量: 从随机导入* 对于范围(15)内的i:
打印randrange(3,13,3)
但是请注意,这不是很好地导入所有,最好只导入所需的类、函数和变量,因此如果您只需要使用randrange:
如果您使用的是import random,这意味着您要导入模块,因此需要指定moduleName。如果您想使用它:
相关问题 更多 >
编程相关推荐