给定以下类,我想编写一个函数,当输入是类 Mock 时返回 a 。如果允许您使用 Mock 对象作为要编写的此函数的输入(您可以使用“_ dict_”或 vars 或检查等),则此任务很容易,但如果 Mock (类 Mock本身而不是 Mock 的对象)被用作输入,因为 vars、dir 或检查都不知道字段 a 的存在。
class Mock:
def __init__(self, a):
self.a=a
我不知道我是否明白你想要什么
但是你可以在类 Mock 中有一个方法,并具有特殊的不寻常名称(例如:
thisMethodExist
)
当你得到一个参数时,尝试从参数中调用这个方法,如果调用返回 True 则意味着该参数有一个名为
thisMethodExist
的方法,所以它可能是一个 Mock (如果你将该方法称为随机名称则更有可能)不太可能出现在任何其他班级。
如果出现异常,说明参数不是Mock实例
class Mock:
def __init__(self, a):
self.a = a
@staticmethod
def thisMethodExist():
return True
def checkMockInstance(self, param)
try:
if param.selfthisMethodExist():
return self.a
except AttributeError:
return False