内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我想弄明白,什么是monkey patching还是patching monkey?
这是否类似于方法/操作符重载或委托?
这些东西有什么共同之处吗?
monkey patching只能用动态语言进行,python就是一个很好的例子。在运行时更改方法而不是更新对象定义就是一个例子;类似地,在运行时添加属性(无论是方法还是变量)被认为是monkey patching。这些操作通常是在使用你没有源的模块时完成的,因此对象定义不能很容易地更改。
这被认为是不好的,因为它意味着一个对象的定义不能完全或准确地描述它的实际行为。