【发布时间】:2014-03-03 19:54:01
【问题描述】:
我很清楚在 Python 中使用 eval 并不是一个好习惯。这是我的代码:
from hashlib import * # added for clarification
def get_hash(self):
if self.hash_type in ['md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512']:
data = eval(self.hash_type) # <--- how can I replace this?
我听说过setattr 函数,但我真的不知道如何实现它。
是否也可以使用map 函数来做到这一点?
注意'md5', 'sha1', 'sha224' 等是局部变量。当我在其中一个上使用eval 函数时,它们就变成了函数。
【问题讨论】:
-
为什么需要 eval 函数?
-
md5、sha1等是什么?全局变量、局部变量、函数? -
您认为
md5、sha1等是某些对象的名称吗?