wxsheng 发表于 2017-4-30 15:00:07

python OO之静态方法

  边试边整理吧:
  不支持方法重载, 和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()
页: [1]
查看完整版本: python OO之静态方法