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

Posted dushangguzhousuoli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的实例方法静态方法类方法及静态属性相关的知识,希望对你有一定的参考价值。

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

 

  

以上是关于类的实例方法静态方法类方法及静态属性的主要内容,如果未能解决你的问题,请参考以下文章

PHP中静态方法(static)与非静态方法的使用及区别

Python 类方法实例方法静态方法的使用与及实例

PHP中静态方法(static)与非静态方法的使用及区别

java静态资源(静态方法,静态属性)是程序一运行就加载到jvm中,还是当被调用的时候才进行加载呢

es6中类中的静态属性实例属性静态方法实例方法的个人理解

java静态资源(静态方法,静态属性)是程序一运行就加载到jvm中,还是当被调用的时候才进行加载呢?