classmethod,staticmethod

__author__ = 'bruce'

class Base(object):

         addr = 'shanghai'

         def __init__(self,name):

               self.name = name

        def get_name(self):

              return self.name

        @classmethod

        def get_addr(cls):

              return cls.addr

        @staticmethod

        def get_addr_second(name):

              return name == 'zhanglinpeng'

class NewOne(Base):

         def __init__(self,name,phone):

               self.phone = phone

               super(NewOne,self).__init__(name)

         def get_phone(self):

               return self.phone

if __name__ == '__main__':

     newone = NewOne('zhanglinpeng','18000000000')

     print newone.get_name()                      # instance method

     print Base.get_name(newone)

     print newone.get_addr()                      # classmethod

     print Base.get_addr()

     print newone.get_addr_second('zhanglinpeng')  # staticmethoed

     print Base.get_addr_second('fengxiaoting')

     print newone.get_phone()

     print NewOne.get_phone(newone)


run result:

zhanglinpeng

zhanglinpeng

shanghai

shanghai

True

False

18000000000

18000000000

你可能感兴趣的:(classmethod,staticmethod)