在Python中用字符串替换类方法
让我们说,我想这样做在Python中用字符串替换类方法,python,function,md5,substitution,Python,Function,Md5,Substitution,让我们说,我想这样做 hashlibAlgo = "md5" Hash= hashlib.**"hashlibAlgo"**("blah blah blah").hexdigest() 我该怎么做呢。如果我用一个字符串替换方法的名称,它显然不起作用。我怎样才能让它工作?在powershell中很容易,但我无法在Python中理解它。您可以使用getattr获得要执行的函数: >>> import hashlib >>> hashlibAlgo = "md5"
hashlibAlgo = "md5"
Hash= hashlib.**"hashlibAlgo"**("blah blah blah").hexdigest()
我该怎么做呢。如果我用一个字符串替换方法的名称,它显然不起作用。我怎样才能让它工作?在powershell中很容易,但我无法在Python中理解它。您可以使用
getattr
获得要执行的函数:
>>> import hashlib
>>> hashlibAlgo = "md5"
>>> getattr(hashlib, hashlibAlgo)("blah blah blah").hexdigest()
'55e562bfee2bde4f9e71b8885eb5e303'
比我快。(我想这就是我第一次看到那个函数人时编辑得到的:P)+1(0_0)。太棒了。谢谢你的快速回复和很好的解决方案。@JuanC。--它还需要一个可选的第三个参数:
getattr(thing,'string',如果没有字符串,则返回this)
+1,这是说明getattr
何时有用的最佳示例之一。(通常这类问题是新手想要以错误的方式解决愚蠢问题的标志。但在这里,你试图以正确的方式解决一个完全合理的问题。)