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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值