类的实例方法、静态方法、类方法及静态属性

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

类的实例⽅法、静态⽅法、类⽅法及静态属性
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 。

相关文档
最新文档