一个区分@staticmethod和@classmethod的小程序


                                    虽然这个小实例对很多高手来说不值一提。但是对于我这个初学者却起到了加深理解的作用。印象很深刻,所以这里贴出来
几点注意:
1.static方法可以不要参数,和C/C++,java里面的静态函数相似
2.普通对象函数至少需要一个self参数,该参数命名可以是‘self’,也可以是其他。代表类实例对象
3.class方法至少需要一个cls参数,该参数命名可以是‘cls’,也可以是其他。代表类对象
>>> class a():
    @staticmethod
    def staticm():
        print 'static'
    def normalm(self):
        print 'nomarl',self
    @classmethod
    def classm(cls):
        print 'class',cls
        
>>> a1=a()
>>> a1.normalm()
nomarl __main__.a instance at 0x84dddec>
>>> a1.staticm()
static
>>> a1.classm()
class __main__.a
>>> type(a)
type 'classobj'>
>>> type(a1)
type 'instance'>