有可能这样做吗(这种语法实际上不起作用)
class TestClass(object):
def method(self):
print 'one'
def dynamically_defined_method(self):
print 'two'
c = TestClass()
c.method()
c.dynamically_defined_method() #this doesn't work
如果可能的话,这是可怕的编程实践吗?我真正要做的是根据实例的状态调用同一方法的两个变体中的一个(都使用相同的名称和签名)
在方法中定义函数不会自动使它对实例可见—它只是一个作用域限定为在方法中存在的函数
为了暴露它,你可能会做:
但这不起作用:
您必须将函数标记为一个方法(我们使用MethodType)。因此,实现这一点的完整代码如下所示:
相关问题 更多 >
编程相关推荐