class and its instance binding methods

import types
class Student:
    def __init__(self,name):
        self.name=name
s1=Student('Mike')
def get_name(self):
    return self.name
#不用types.MethodType
s1.get_name=get_name
#调用的时候需要传入self
s1.get_name(s1)
#使用types.MethodType
s1.get_name=types.MethodType(get_name,s1)
#可以直接调用
s1.getname()
#但是另一个的实例不可以调用
# s2=Student('John')
# s2.get_name() 报错class绑定,所有实例都可以用
Student.get_name=get_name
s1.get_name()
s2.get_name()
#都可以正确运行






Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324847040&siteId=291194637