相关疑难解决方法(0)

python内置类型的扩展方法!

是否可以为python内置类型添加扩展方法?我知道我可以通过简单地添加新方法来将扩展方法添加到已定义的类型.如下:

class myClass:
    pass

myClass.myExtensionMethod = lambda self,x:x * 2
z = myClass()
print z.myExtensionMethod(10)
Run Code Online (Sandbox Code Playgroud)

但是有没有办法将扩展方法添加到python built'in类型,如list,dict,...

list.myExtension = lambda self,x:x * 2
list.myExtension(10)
Run Code Online (Sandbox Code Playgroud)

python

42
推荐指数
3
解决办法
2万
查看次数

在Python中动态地将成员函数添加到类的实例

当我执行以下操作时:

class C:
 pass

def f( self ):
 print self

a = C()

a.f = f

a.f()
Run Code Online (Sandbox Code Playgroud)

我在第af()行得到以下错误:TypeError:f()只取1个参数(给定0)

问题似乎是当f被添加到实例a时,它被视为存储在a而不是实际成员函数内的函数.如果我将af()更改为af(a),那么我得到了预期的效果,但有没有办法让python以这种方式解释原始示例?换句话说,有没有办法在运行时将成员函数添加到类的实例?

谢谢

python

13
推荐指数
2
解决办法
5417
查看次数

标签 统计

python ×2