python_类方法的调用

python.png
  • for Python 2.7.X
  • 实例方法调用

    clss A:
        def b(self):
              print 'abc'
    c = a()
    c.b()
    

这种调用方法,在调用类时,必须先将类实例化,然后才能调用类中方法,这种调用比较麻烦

  • 静态方法调用

    clss A:
        @staticmethod
        def b(self):
              print 'abc'
    a.b()
    

这种调用方法,不需要实例化,用起来很方便

  • 类方法调用

    clss A:
        @classmethod
        def b(self):
              print 'abc'
    a.b()
    

这种调用方法,与@staticmethod(静态方法)用法一致,但是存在细微区别,一张图片了解区别:

  • @classmethod与@staticmethod的区别:

    class Kls(object):
         def __init__(self, data): 
              self.data = data 
        def printd(self): 
              print(self.data) 
        @staticmethod 
        def smethod(*arg): 
              print('Static:', arg) 
        @classmethod 
        def cmethod(*arg): 
              print('Class:', arg)
    ik = Kls()
    

执行顺序:

区别.jpg
  • 总结:从上图可以看出,使用函数修饰符@classmethod与@staticmethod后,直接用类调用方法运行起来都是一样的;区别是类实例化后,添加@staticmethod的方法是不能用实例化调用方法的;
    注意:如果想用类直接调用方法,需要在每个方法上方添加 函数修饰符

以上参考前辈文章总结而来,若有不全,请指教。随时补充

@雾霾--2016-07-29 10:47:49

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1面向对象 面向对象(object-oriented ;简称: OO)至今还没有统一的概念 我这里把它定义为:...
    TENG书阅读 589评论 0 0
  • 太阳很足,整个大地都被太阳炙烤着,看远处,就像烧着的东西冒烟一样。心情再好,燥热而又闷罐的天气也会对心情有所影响。...
    迷路人_J阅读 333评论 0 0
  • 狄晓先阅读 166评论 0 2
  • ——《 金太狼的幸福生活之金亮和颜子淳》 电影的节奏很慢,是很适合在下雨的时候,拥有一段惬意的时光。有感动,不会让...
    狐狸安啦阅读 953评论 0 1