python将方法转换为函数[重复项]

问题描述 投票:0回答:1
假设我有一个名为myMD5的对象,如下所示:

<md5 HASH object @ 0xb79b9860>

这里是dir(myMD5)

['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'block_size', 'copy', 'digest', 'digest_size', 'digestsize', 'hexdigest', 'name', 'update']

我想获取哈希字符串,为此,我需要调用myMD5.hexdigest()。问题是我实际上在挑战(称为PyJail),并且禁止使用字符点(.)。 

因此,我需要通过另一种方式调用此方法。有什么办法像函数一样调用它吗?像这样的东西:

hexdigest(myMD5)

我尝试执行此操作,但是不起作用:

getattr(myMD5, dir(myMD5)[-3]) # returns <classmethod object at 0xb79b998c>

PS;挑战也禁止其他元素,例如使用引号('"),使用import语句,使用execeval等内容]]

假设我有一个名为myMD5的对象,如下所示:

这是dir(myMD5):['__class __','__ delattr __','__ doc __','__ format __','__ getattribute __','__ hash__'。 ..

python methods md5
1个回答
0
投票
getattr(myMD5, dir(myMD5)[-3])返回要在对象上调用的方法,然后只需要使用括号()运行该方法:
© www.soinside.com 2019 - 2024. All rights reserved.