Error Using Class Method Defined Outside of Class
我有一个类,我想在初始化时使用一个任意的方法来根据上下文进行字符串解析。
使用在类外部定义的方法,如这里所讨论的:python在类定义外部定义方法?
1 2 3 4 5 6 7 8 9 10 11 12 13 | def my_string_method(self): return self.var.strip() class My_Class(): def __init__(self, string_method): self.var = ' foo ' self.string_method = string_method def use_string_method(self): return self.string_method() instance = My_Class(string_method=my_string_method) print instance.use_string_method() |
我得到的错误是"EDOCX1×0"。
难道不应该将
1 2 3 4 5 6 7 | class My_Class(): def __init__(self, string_method): self.var = ' foo ' self.string_method = string_method def use_string_method(self): return self.string_method(self) |
您必须将传入的函数包装为"methodType"。
从你的内心深处:
1 | self.string_method = types.MethodType(string_method, self) |
这将方法绑定到类,并允许它接收隐式自参数。确保你的脚本顶部是