类--面向对象 --statismethod和classmethod装饰器的用法

Posted forjie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类--面向对象 --statismethod和classmethod装饰器的用法相关的知识,希望对你有一定的参考价值。

1)classmethod

class Classmethod_demo:

  def 

class Classmethod:  #定义类名
    role=dog    
    @classmethod
    def func(cls):
          print(cls.role)

Classmethod.func()  
        

classmethod装饰器的作用就是让你在类里面可以调用类里面的左右元素,
但是会用cls代替类名(Classmethod),如上面代码加上@classmethod以后
下面的函数括号里面会自动显示cls,而在下面的print里面还可以调用类方法,也就是相当于Classmethod.role。。。

2)staticmethod

class Chack:
    role=dog
    @staticmethod    
    def func():
        print(Chack.role)
Chack.func()

加入@staticmethod后,下面的func()括号里就不会有self,
静态方法,让类里面的方法可以直接调用,就像正常函数一样,但是他不能在类里面调用类名。

总结:classmethod 和staticmethod之间有相同也有不同

相同的是:他们都不需要对象实例化就可以调用

不同的是:classmethod、一个会在类里面产生一个cls表示这个类,可以用cls调用内部的方法,而staticmethod是静态的,在内部不会产生元素

所有调用不了类名。

 

以上是关于类--面向对象 --statismethod和classmethod装饰器的用法的主要内容,如果未能解决你的问题,请参考以下文章

第六章 Python类(面向对象编程)

Python基础13 面向对象--类

Python 面向对象编程

Java之面向对象概述,类,构造方法,static,主方法,对象

面向对象

Java面向对象(类封装)