0

次のコードスニペットがあります

thetype = raw_input("Please enter hash type. md5 or sha1")
hash_type = hashlib.thetype(word).hexdigest()

これにより、「AttributeError: 'module' オブジェクトに属性 'thetype' がありません」というエラーが返されます。

4

2 に答える 2

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

于 2012-07-26T02:25:12.877 に答える
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!"
于 2012-07-26T03:08:54.763 に答える