标记类方法@classmethod def get_count(cls):如何实现两次计算

来源:2-9 Python定义类方法

慕慕1489512

2022-04-23 17:18

class animal(object):

    __count=0

    def __init__(self,name,age):

        self.name=name

        self.age=age

        animal.__count+=1

    @classmethod

    def get_count(cls):

        return cls.__count

dog=animal('wangcai',2)

cat=animal('tom',3)

count=animal.get_count()

print(count)

#结果为2

写回答 关注

1回答

  • 打字的狐狸
    2022-04-24 20:15:20

    实例的属性定义函数中也不能直接调用私有的类属性,需要加一个类方法,在实例的属性定义中:

    class Animal(object):

        __count=0

        def __init__(self,name,age):

            self.name=name

            self.age=age

            Animal.set_count()

        @classmethod

        def set_count(cls):

            cls.__count+=1

        @classmethod

        def get_count(cls):

            return cls.__count

    dog=Animal('Wangwang',15)

    cat=Animal('set',16)

    print(Animal.get_count())

    #答案为2


    打字的狐狸

    是我的问题,这里的回答不知道如何删除,但是可以直接不看了,可以直接方法,我的出错点在别的地方以至于以为是这个问题,抱歉,浪费题主的时间了,抱歉

    2022-04-24 20:22:48

    共 1 条回复 >

Python3 进阶教程(新版)

学习函数式、模块和面向对象编程,掌握Python高级程序设计

41910 学习 · 236 问题

查看课程

相似问题