Disons que nous avons une classe AnimalFamilier en Python:Rédaction d'une méthode de python qui fait référence à la fois l'instance et la classe
class Pet(object):
num_pets = 0
def __init__(self, name):
self.name = name
Pet.num_pets += 1
def speak(self):
print("My name's %s and the number of pets is %d" % (self.name, self.num_pets))
Je veux la méthode init pour créer une instance, mais également mettre à jour un attribut sur la classe. Existe-t-il une façon plus élégante de faire cela que le code ci-dessus? J'ai essayé de passer en self
et cls
à la méthode init, puis en faisant référence à cls au lieu de Pet où num_pets est incrémenté, mais cela n'a pas fonctionné.
Je vois le code ci-dessus être assez élégant. Sauf si 'num_pets' est un attribut géré par classe. Je ne vois aucune raison évidente pourquoi considérer la nécessité d'utiliser une méthode de classe ici. – direprobs