python动态绑定
发布网友
发布时间:2022-04-18 07:26
我来回答
共2个回答
热心网友
时间:2022-04-18 08:55
是因为你的使用方法不对。这个方法是给实例绑定方法用的,用来不会影响到其他实例:
class Stu(object):
def set_age(self,age):
self.age = 19
s=Stu()
a=Stu()
def set_age(self,age):
self.age = age
import types
a.set_age = types.MethodType(set_age, a)
a.set_age(15)
s.set_age(11)
print(s.age,a.age) # => (19, 15)
用MethodType方法更改了实例a的set_age方法,同类实例s并不受影响。
如果要给你一个类绑定方法:
class Stu(object):
pass
s=Stu()
a=Stu()
def set_age(self,age):
self.age = age
import types
Stu.set_age = set_age
a.set_age(15)
s.set_age(11)
print(s.age,a.age)
这样直接绑定就可以了。
热心网友
时间:2022-04-18 10:13
你打代码缩进有错误