分类: Python/Ruby
2015-12-25 13:14:25
转载自:http://blog.csdn.net/openxmpp/article/details/8779691
用classmethod修饰表示这是一个类方法,如果没有用@classmethod修饰,则表示这是一个对象方法,使用时必须与一个对象绑定,如下
class MyClass(): def thisIsClassMethod(self): print "this is a class method" if __name__ == "__main__": c = MyClass() MyClass.thisIsClassMethod(c) #调用时传入参数c,否则编译错误如果采用@classmethod修饰,则不用传入参数c,可以用下面方式调用:
class MyClass(): @classmethod def thisIsClassMethod(cls,parameter): print "this is a class method" print cls.__name__ print type(cls) #打印类型为classobj if __name__ == "__main__": MyClass.thisIsClassMethod(None) #不用与对象绑定 print type(MyClass)
class MyClass: def __init__(self,num): self._Num = num @property def Num(self): return self._Num if __name__ == "__main__": c = MyClass(100) print c.Num #注意,这里的访问形式看起来像是访问一个属性,但其实是一个方法
class MyClass: @staticmethod def thisIsStaticMethod(): print "This is static method" if __name__ == "__main__": MyClass.thisIsStaticMethod()