python之类方法和静态方法

@staticmethod中要调用到这个类的一些属性方法,只能直接类名.属性名或类名.方法名。
而@classmethod因为持有cls参数,可以来调用类的属性,类的方法,实例化对象等,避免硬编码
class A(object):
    bar = 1

    def foo(self):
        print 'foo'

    @staticmethod
    def static_foo():
        print 'static_foo'
        print A.bar
        A.foo()

    @classmethod
    def class_foo(cls):
        print 'class_foo'
        print cls.bar
        cls().foo()


A.static_foo()
A.class_foo()

猜你喜欢

转载自blog.csdn.net/zt3032/article/details/79252861