我正在尝试为另一个类创建一个代理类。我希望将此类传递到其构造函数中的代理中,然后让代理在其自身上动态创建此类的所有相同方法。
这是我到目前为止没有工作的内容:
import inspect
from optparse import OptionParser
class MyClass:
def func1(self):
print 'MyClass.func1'
def func2(self):
print 'MyClass.func1'
class ProxyClass:
def __init__(self):
myClass = MyClass()
members = inspect.getmembers(MyClass, predicate=inspect.ismethod)
for member in members:
funcName = member[0]
def fn(self):
print 'ProxyClass.' + funcName
return myClass[funcName]()
self.__dict__[funcName] = fn
proxyClass = ProxyClass()
proxyClass.func1()
proxyClass.func2()
我认为这是self.__dict__[funcName] = fn
需要更改的线路,但不确定要更改什么?
我是 Python 新手,所以如果有完全不同的 Pythonic 方式来做这件事,我也会很高兴听到这个消息。