I';我想用python创建一个模拟对象
我想要一个可以在python中实例化的虚拟对象,并通过setattr()以编程方式为其创建属性 我在内置对象上尝试了它,但可能是因为一个很好的原因,它不起作用I';我想用python创建一个模拟对象,python,object,setattr,Python,Object,Setattr,我想要一个可以在python中实例化的虚拟对象,并通过setattr()以编程方式为其创建属性 我在内置对象上尝试了它,但可能是因为一个很好的原因,它不起作用 在python中,我可以使用什么样的基本对象来实现这些目的,而不是自己定义一个对象?您不能使用mock=object(),而只需创建一个从对象派生的mock class Mock(object): pass mock = Mock() setattr(mock, 'test', 'whatever') 如果您使用模拟库(例如
在python中,我可以使用什么样的基本对象来实现这些目的,而不是自己定义一个对象?您不能使用
mock=object()
,而只需创建一个从对象派生的mock
class Mock(object):
pass
mock = Mock()
setattr(mock, 'test', 'whatever')
如果您使用模拟库(例如),那么您可以对对象上调用的内容进行断言。您可能想这样做,也可能不想这样做。这是对Jon Clement技术的改进,以防您希望您的模拟对象在创建时获得一些属性:
class Mock(object):
def __init__(self, **kwArgs): # constructor turns keyword args into attributes
self.__dict__.update(kwArgs)
# now you can do things like this:
options = Mock(verbose=True, debug=False)