码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-08-16 17:12:18      阅读:212      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!