1、类的方法,按照调用方式可以分为3种,实例方法、静态方法、和类方法
1.1 实例方法
实例方法只能通过实例对象调用,不能通过类进行调用。实例方法再定义时候使用关键字self,self代表实例对象本身。
class A(): x=100 def fun(self,y): self.x+=y a=A() a.fun(10) print(a.x) A.fun(10) *****结果****** 110 Traceback (most recent call last): #类调用错误 File "/home/34f17b632da0cc986bc0f291c0518783.py", line 8, in <module> A.fun(10) TypeError: fun() missing 1 required positional argument: ‘y‘
1.2 静态方法
静态方法可以使用实例对象调用,也可以使用类进行调用,他的的特点没有参数限制,定义时需要在函数前加@staticmethod
class B(): @staticmethod def fun(): print(‘hello,word‘) a=B() a.fun() #实例调用 B.fun() #类调用 ***结果***** hello,word hello,word
1.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 *****结果******* szu szu szu beijingizhong shanghaiyizhong
2、静态属性
静态属性。@property。作用就是把类的函数属性,封装成类似数据属性。再调用函数printmassage 时候,必须不带()执行。
class Student(object): school=‘szu‘ @property def printmassage(self): print(‘aaaa‘) s1=Student() s1.printmassage #aaaa
原文地址:https://www.cnblogs.com/dushangguzhousuoli/p/11162129.html
时间: 2024-10-10 20:41:20