静态方法与类方法

简单的理解就是静态方法与类方法都不需要实例就可以访问

静态方法与类方法的不同在于静态方法不能访问所在类,而类方法可以, 如下

class TestStaticMethod:
    @staticmethod
    def foo():
        pass

class  TestClassMethod:
    @classmethod
    def foo(cls):
        print cls.__name__

所以 @classmethod 还是很有用的, 通过他, 可以对class做动太的匹配, 下面就是刚想到的场景 , 因为@staticmethod没有把cls 传进去, 就不行. @staticmethod 仅仅是逻辑上和class 帮在一起

静态方法与类方法_第1张图片
Paste_Image.png

可以参考如下几个小哥的讨论
http://bbs.csdn.net/topics/350141376

你可能感兴趣的:(静态方法与类方法)