需要一个类来跟踪创建了多少不同类型的类

2024-06-17 12:57:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个动物类定义为:

class Animal:
    counter = 0
     
    def __init__(self, species, sound):
        self.species=species
        self.sound=sound
        Animal.counter += 1
        
    def make_sound(self):
        return self.sound
    
    def number_of_your_species(self):
        return self.counter 

我想要number\u of_your\u species方法返回创建了多少种不同类型的物种。上面的代码不起作用,因为它返回类动物已实例化的总数。 换句话说,我希望下面返回2(猫)和1(狗):

tom = Animal("cat","miau")
pluto = Animal("dog","guau")
misifu = Animal("cat","miau")

tom.number_of_your_species()
pluto.number_of_your_species()

1条回答
网友
1楼 · 发布于 2024-06-17 12:57:42
class Animal:
    counter = dict()
     
    def __init__(self, species, sound):
        self.species=species
        self.sound=sound
        if species not in Animal.counter:
            Animal.counter[species] = 0
        Animal.counter[species] += 1
        
    def make_sound(self):
        return self.sound
    
    def number_of_your_species(self):
        return Animal.counter[self.species]

相关问题 更多 >