python中类/静态方法

python 中的类方法与静态方法都可以被类或实例访问,其区别总结如下

a、类方法:

在python 2.4以后,通过修饰器实现

@classmethod
def test(cls):
    print cls.__name__

2、类方法需要传入代表本类的cls参数(cls可以为其他单词,但一般习惯使用cls)

3、类方法无法访问实例变量,但可以访问类变量

b、静态方法:

静态方法无需传入self参数,相当于一个独立的方法,与类关系不大,一般很少使用。

c、测试程序如下

#/bin/env python
#coding:utf-8
class TestClassMethod(object):

    METHOD = 'Class variable '

    def __init__(self):
        self.name = 'leon'

    def test1(self):
        print '实例方法'
        print self.name
	print ''

    @classmethod
    def test2(cls):
        print '类方法'
        print cls
        print cls.METHOD
        print ''

    @staticmethod
    def test3():
        print '静态方法'
        print ''

if __name__ == '__main__':
    a = TestClassMethod()
    a.test1()
    a.test2()
    #TestClassMethod.test2()
    a.test3()
    #TestClassMethod.test3()

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
永久连接: http://www.nfvschool.cn/?p=590
标签:

发表评论