Discuss / Python / 为什么我的绑定了实例其他实例还能使用此方法还不报错

为什么我的绑定了实例其他实例还能使用此方法还不报错

Topic source

革委坡

#1 Created at ... [Delete] [Delete and Lock User]
>>>class Student(object):
        def set_age(self,age):
            self.age = age

>>>from types import MethodType
>>>s = Student()
>>>s.set_age = MethodType(set_age,s)
>>>s.set_age(19)
>>>s.age
>>>19

>>>s1 = Student()
>>>s1.set_age(25)
>>>s1.age
>>>25

不报错啊!!!

你这个方法直接绑定在类里面了,,如果想测试报错那种效果,,函数要放在类外面单独定义

BIG_bozi

#3 Created at ... [Delete] [Delete and Lock User]

你这段是没用的吧

s.set_age = MethodType(set_age,s)

set_age方法不是已经定义在Student类中了吗,不需要额外绑定了

将方法定义在类外,才会报错,你这个是定义在类内,实例都可以调用


  • 1

Reply