, x.get_instance() ThirdPartyClass, monkeypatch ThirdPartyClass:
from thirdpartlib.module import ThirdPartyClass
def patch_ThirdPartyClass():
_get_message = ThirdPartyClass.get_message
def get_message(self):
message = _get_message()
return message
ThirdPartyClass.get_message = get_message
patch_ThirdPartyClass()
, - , , :
def patch_ThirdPartyClass():
_get_message = ThirdPartyClass.get_message
if getattr(_get_message, "patched", False):
return
def get_message(self):
message = _get_message()
return message
get_message.patched = True
ThirdPartyClass.get_message = get_message
patch_ThirdPartyClass()
, x.get_instance(), .
- , :
def patch_instance(instance):
_get_message = instance.get_message
def get_message(self):
message = _get_message()
return message
instance.get_message = get_message.__get__(instance, type(instance))
return instance
i = patch_instance(x.get_instance())
wrt/make sure, , , monkeypatch.
: patch_instance , x.get_instance() , x.get_instance, patch_instance.