我有以下代码片段
thetype = raw_input("Please enter hash type. md5 or sha1")
hash_type = hashlib.thetype(word).hexdigest()
返回错误“AttributeError:'module'对象没有属性'thetype' “我有点理解为什么,但我想我真正想问的是,我该如何解决这个问题?
答案 0 :(得分:2)
通过使用字典(您也可以使用getattr
,但这会引入获取其他无关属性的可能性。)
d = {"md5" : hashlib.md5, "sha1" : hashlib.sha1}
hash_type = raw_input("Please enter hash type. md5 or sha1")
d[hash_type].hexdigest()
此外,raw_input
已经返回str
,因此无需再次致电str
。
答案 1 :(得分:0)
import hashlib
thetype = raw_input("Please enter hash type. %r"%(hashlib.algorithms,))
# 2.7 or later... just catch the exception from .new(thetype) for older versions.
if thetype in hashlib.algorithms:
print hashlib.new(thetype)('some data').hexdigest()
else:
print "No Way!"