我想要一個虛擬對象,我可以在python中實例化並以編程方式爲通過setattr()創建屬性。我想在python中創建一個模擬對象
我嘗試了內置對象,但可能是因爲沒有工作的好理由。
我可以在python中使用什麼基礎對象來達到這個目的,而不需要自己定義一個基礎對象?
我想要一個虛擬對象,我可以在python中實例化並以編程方式爲通過setattr()創建屬性。我想在python中創建一個模擬對象
我嘗試了內置對象,但可能是因爲沒有工作的好理由。
我可以在python中使用什麼基礎對象來達到這個目的,而不需要自己定義一個基礎對象?
不能使用mock = object()
,而不僅僅是創建object
class Mock(object):
pass
mock = Mock()
setattr(mock, 'test', 'whatever')
派生如果您使用嘲諷庫(例如mock)然後你做什麼都會調用該對象的斷言一個模擬。你可能會也可能不想這樣做。
你想要的改進,喬恩·克萊門特的技術,如果你的模擬對象,以獲取在創建一些屬性:
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)