zoukankan      html  css  js  c++  java
  • Python的classmethod和staticmethod区别

    静态方法(staticmethod)

    类方法(classmethod)

    静态方法和类方法都可以通过类名.方法名或者实例.方法访问。

    #-*- coding:utf8 -*-
                                                                                                                                         
    class A(object):
        def instance_method(self,x):
            print "instance_method (%s,%s)" % (self,x)
    
        @classmethod
        def class_method(cls,x):
            #类方法的调用使用类本身作为其隐含的参数
            #调用者本身并不需要显示提供该参数
            print "class_methodi (%s,%s)" % (cls,x)
    
        @staticmethod
        def static_method(x):
            #静态方法没有常规方法的特殊行为
            print "static_method (%s)" % (x) 
    
    
    a = A() 
    
    a.instance_method('test')
    A.class_method('test')
    A.static_method('test')
    

      

    输出结果:

    instance_method (<__main__.A object at 0x7f4b7beacd90>,test)
    class_methodi (<class '__main__.A'>,test)
    static_method (test)
    

      

  • 相关阅读:
    Hadoop
    Mapreduce
    ssh原理
    HDFS
    Centos
    创建jira插件
    新型的领导者是一名推动者,而不是一名发号施令者
    上善若水,虚怀若谷
    GoAhead 嵌入式web
    Eclipse基金会
  • 原文地址:https://www.cnblogs.com/gsblog/p/4126772.html
Copyright © 2011-2022 走看看