类--面向对象 --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装饰器的用法的主要内容,如果未能解决你的问题,请参考以下文章