边试边整理吧:
不支持方法重载, 和javascript一样,后面定义的method会覆盖前面的
普通方法,self指向类的实例
静态方法,需要在方法定义上面加上注解@staticmethod,此时方法参数中不加self指针
比java多出一类方法的概念(java中静态方法和类方法是一个概念)
需要加上@classmethod注解
此时方法参数中self指向类的定义。。相当于指向java.lang.Class类
class MyClass:
def instanceMethod(self):
print 'instance method, self=',self
@classmethod
def classMethod(self):
print 'class method, self=',self
@staticmethod
def staticMethod():
print 'static method, self=null'
m = MyClass()
#instance method, self= <__main__.MyClass instance at 0x012538F0>
m.instanceMethod()
#class method, self= __main__.MyClass
MyClass.classMethod()
#static method, self=null
MyClass.staticMethod()