类的实例方法、静态方法、类方法及静态属性
发布日期:2021-10-24 15:04:57 浏览次数:10 分类:技术文章

本文共 1410 字,大约阅读时间需要 4 分钟。

1、类的方法,按照调用方式可以分为3种,实例方法、静态方法、和类方法

  1.1 实例方法

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

class A():    x=100    def fun(self,y):        self.x+=ya=A()a.fun(10)print(a.x)A.fun(10)*****结果******110Traceback (most recent call last): #类调用错误  File "/home/34f17b632da0cc986bc0f291c0518783.py", line 8, in 
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,wordhello,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)#szuprint(s1.school)#beijingizhongStudent.school='shanghaiyizhong'#通过类对类的属性school做修改,类的属性发生改变s1.printmassage()  #shanghaiyizhong *****结果*******szuszuszubeijingizhongshanghaiyizhong

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

转载地址:https://blog.csdn.net/weixin_30794491/article/details/99626138 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:下载历史版本App
下一篇:初识软件工程

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月07日 01时32分35秒