静态方法、实例方法、类方法

1、实例方法

     只能通过实例对象调用,不能通过类进行调用。在定义的时候使用关键字self,self代表实例对象本身!

class H:

    def gg(self):

......                        则调用gg时,写成H().gg()

2、静态方法

   可以使用实例对象调用,也可以使用类进行调用,定义时需要在函数前加@staticmethod

3、类方法

   可以被类调用,也可以被实例对象调用,实例调用可以给类增加属性,类的属性修改需要通过类进行修改,类方法需要使用关键字cls,定义时候需要在函数前加@classmethod

class Student(object):
    school='szu'

    @classmethod
    def printmassage(cls):
        print(cls.school)
    

s1=Student()
Student.printmassage()  
s1.printmassage()  
s1.school='beijingizhong' #为类的实例增加属性,类的实例school本身不改变
print(Student.school)#szu
print(s1.school)#beijingizhong
Student.school='shanghaiyizhong'#通过类对类的属性school做修改,类的属性发生改变
s1.printmassage()  #shanghaiyizhong 

参考:https://www.cnblogs.com/dushangguzhousuoli/p/11162129.html
原文地址:https://www.cnblogs.com/guotang/p/12866962.html