类方法和静态方法

class People(object):
    color = "yellow"
    __age = 30  #私有属性

    def think(self):
        self.color = "black"
        print("I am a %s" %self.color)
        print(self.__age)

    def __talk(self):
        print("I am talking with Tom")

    # def test(self):
    #     print self.color
    @classmethod  #装饰器,只对下面的一个函数起作用
    def test(self):
        # print("this is func")
        print("this is class method")
        # print People.color  #访问类里面其它成员

    def test2(self):
        # print("this is func")
        print("this is class method test2")
        # print People.color  #访问类里面其它成员

    cm = classmethod(test2)
    sm = staticmethod(test2)   #  静态方法的,需要通过函数后才行

    @staticmethod    #装饰器,只对下面的一个函数起作用
    def test1():
        print ("this is static method")

David = People()
People.cm()
People.sm(David)
David.sm(David)
People.test()
David.test()
People.test1()

输出:

this is class method test2
this is class method test2
this is class method test2
this is class method
this is class method
this is static method
posted @ 2022-10-22 19:56  ty1539  阅读(16)  评论(0编辑  收藏  举报