Python错误'str'对象没有属性'choice'

时间:2016-05-26 16:44:26

标签: python random attributes

所以,我有这段代码:

import random, string, os, time
a = 0
random = ''
def calcular():
    global random
    random = ''.join([random.choice(string.ascii_letters) for n in xrange(4)])
    print random
while a<1:
    calcular()
    a=a+1
    pass
print time.strftime('%H:%M:%S')
os.system('pause')

但我得到了

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

有什么问题?

2 个答案:

答案 0 :(得分:4)

您正在使用具有相同变量名称的字符串覆盖名为random的模块。最好不要为你的字符串使用其他名称。

import random, string, time

def calcular():
    letters = ''.join(random.choice(string.ascii_letters) for n in xrange(4))
    print letters

a = 0
while a<1:
    calcular()
    a += 1
print time.strftime('%H:%M:%S')

答案 1 :(得分:2)

模块和字符串都命名为randomrandom = ''稍后定义,所以当你执行random.choice时,你试图在字符串对象而不是随机模块上调用选择方法。

解决方案是将您的字符串重命名为其他内容。