我正在尝试生成一个随机的三位数扩展名:
>>> ''.join(str(x) for x in random.sample(range(1,10),3))
它在提示中起作用。但是,当我运行该程序时,它会引发一个 TypeError: str object is not callable。这是我的行:
filename = hashlib.md5(imagefile.getvalue()).hexdigest() +
''.join(str(x) for x in random.sample(range(1,10),3)) + '_thumb' + '.jpg'
我在这里做错了什么,我该如何解决?
谢谢你的帮助。我之前在代码中调用了 str,这导致了错误:
str=""
for c in i.chunks():
str += c
...
请您参考如下方法:
您已将通常指字符串类型的全局名称 str 替换为其他名称(很可能是包含不太重要的字符串的变量)。 Python 通常不会将这些东西视为关键字(在 Python 3.x 中,True 和 False 已成为关键字,之前它们只是全局变量)。
也就是说,random.sample 选择了非重复值,这似乎不是“生成随机三位数扩展”问题的要求。避免零也没有。我只会从 0-999 中选择一个随机数并适本地设置它的格式(“%03d”,或新格式中的等效项)。
