【发布时间】:2014-07-16 00:51:56
【问题描述】:
我有一个读取字符串的类,并为字符串的每个字符执行特定操作。我希望我的班级能够提供自定义操作来扩展它的功能。为了做到这一点,我想让用户提供的函数成为我类的有界方法,这样我就可以像这样循环字符串;
for x in self.string:
getattr(self, self.actions[x])()
我已经尝试过为我的班级创建新的绑定方法:
class myclass(object):
def __init__(self, additional_actions={}):
self.thing = "value"
for k,v in additional_actions.items():
setattr(self,k,v)
def dummy(self):
print(self.thing)
mydic = {"awesome":dummy}
a = myclass(mydic)
a.awesome()
但是,我收到此错误:
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
a.awesome()
TypeError: dummy() missing 1 required positional argument: 'self'
如何将常规函数转换为绑定方法?
【问题讨论】:
标签: python oop python-3.x