Python 3.6
我正在尝试修改第三方库的行为。
我不想直接更改源代码。
考虑下面的代码:
class UselessObject(object):
pass
class PretendClassDef(object):
"""
A class to highlight my problem
"""
def do_something(self):
# Allot of code here
result = UselessObject()
return result
我想要用自己的类替换UselessObject
。
我想知道在我的模块中使用元类拦截创建UselessObject
是否是一个有效的想法?
编辑
这个由Ashwini Chaudhary发布的回答可能对其他人有用。还有下面的答案。
另外,我发现在Python 3中,'module'级别的__metaclass__
不起作用。所以我的最初问题“它是否是一个有效的想法”是错误的。
import that_library; that_library.UselessObject = MyOwnObject
呢? - Aran-Fey