python导入随机问题-AttributeError:';内置函数或方法';对象没有属性

python导入随机问题-AttributeError:';内置函数或方法';对象没有属性,python,python-3.x,Python,Python 3.x,我正在使用python3,我发现以下错误: AttributeError: 'builtin_function_or_method' object has no attribute 'choice' passwordGen = "".join(choice(characters) for x in range(randint(12, 20))) NameError: name 'randint' is not defined 这是我的代码: import random from rando

我正在使用python3,我发现以下错误:

AttributeError: 'builtin_function_or_method' object has no attribute 'choice'

passwordGen =  "".join(choice(characters) for x in range(randint(12, 20)))
NameError: name 'randint' is not defined
这是我的代码:

import random
from random import uniform, random, choice, sample, randint
somelist = ["temp1"]
randomList = random.choice(somelist)
以及:

我知道我的单子上只有一个项目,大多数情况下我都有一个以上的项目 在这个特定的代码中,我有一个

我尝试只导入random,然后每次出现不同的错误时,我都从random添加 当我更改导入时

如果我在python3中这样做:

>>> a = ["temp1"]
>>> import random
>>> b = random.choice(a)
>>> b
'temp1'

那么问题是什么呢

当您导入随机时,这会将名称“random”绑定到内置模块
random
(其中包含
选项
函数)。但是,在下一行中,您可以:

from random import uniform, random, choice, sample, randint

这里的
from random import random
将名称“random”重新绑定到刚才导入的函数
random.random
。因此,后续的
random.choice
将“random”解析为该函数,而不是模块。相反,您可以直接使用
choice
,就像您稍后所做的那样。

当您在代码中使用random时,您认为是:
导入random
还是
from random import uniform,random,
?我现在只尝试了
from random import random,choice,randint
和相同的错误:
AttributeError:“内置函数”或“方法”对象没有属性“选择”
然后使用简单的选择。你是什么意思?进口什么?我还需要第二个代码的randint我现在只尝试了random import random,choice,randint中的
,得到了错误
AttributeError:“builtin_function_或_method”对象没有属性“choice”
@BatchenRegev,原因与以前相同
from X import Y
将名称“Y”绑定到对象
X.Y
。因此,在您的情况下,“random”绑定到
random.random
;此函数没有属性
选项
(如错误所示)。模块
random
包含一个
choice
函数,因此您需要导入random
然后导入
random。choice
from random import random,choice,randint
然后只导入
choice
。什么意思是导入choice?对不起,我不明白,你能写信告诉我如何导入吗?像这样<代码>从随机导入选项导入随机或
导入随机导入随机。选择
@BatchenRegev您有两个选项。(1)
导入random
然后通过名称“random”访问任何函数;例如
random.choice(…)、random.randint(…)、random.random(…)
。(2)
从random import choice、randint、random
中选择,然后通过导入的名称直接访问任何函数;例如
choice(…)、randint(…)、random(…)
。值得注意的是,
random
的最后一次出现是指功能,而不是模块。你也可以混合这两个选项,除非你从随机导入中执行
,随机
,因为这会影响上一个
导入随机
。谢谢你,现在我得到了它,不管怎样,我最后使用了它:
从随机导入选择导入随机,randint
from random import uniform, random, choice, sample, randint