绑定方法和非绑定方法

在类内部定义的函数,分为两大类:

    一:绑定方法:绑定给谁,就应该由谁来调用就会把调用者当作第一个参数自动传入。

      绑定到对象的方法:在类定义的没有被任何装饰器(classmate)修饰

                     绑定方法又可以分为:绑定给对象和绑定到类

    二:非绑定方法:没有自动传值

          非绑定方法:不与类和对象绑定

class People:
    def __init__(self, name):
        self.__name = name


    def name(self):
        print('welcome %s ' % self.__name)

    @classmethod
    def tell(self):
        print('绑定给类')
    @staticmethod
    def look(self,val):
        if not isinstance(val,str):
            print('名字必须是字符串')
            return
        print('yes')

p1=People('zhang')

print(p1.tell)
People.tell()
p1.look('zhang','wang')

分析总结:可以从调用看出,People.tell()在classmate修饰过后,它不需要给定参数,而是自动把类当作参数传入,而非绑定方法是在staticmethod修饰过后可以看出,调用它必须给定定义时的参数位数。

原文地址:https://www.cnblogs.com/z18271397173/p/9133932.html