标签:dog 总结 print style elf hack 一个 -- self
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装饰器的用法
标签:dog 总结 print style elf hack 一个 -- self
原文地址:http://www.cnblogs.com/52forjie/p/7373694.html