首页 > 其他 > 详细

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

时间:2017-08-16 16:58:36      阅读:382      评论:0      收藏:0      [点我收藏+]

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装饰器的用法

原文:http://www.cnblogs.com/52forjie/p/7373694.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!