Je souhaite gérer le nombre d'objets A et B, B est sous-classé à partir de A. Les comptages doivent donc être spécifiques à A et B. Par exemple, si je crée 3 objets A et 2 objets B, en vertu de l'appel du constructeur, compte pour A devient 3 + 2 = 5, mais je voudrais garder comme 3 (pas lorsqu'il est utilisé comme un sous-objet dans le cadre de B). S'il vous plaît commenter l'extrait de code suivant:Nombre d'objets complets et de sous-objets en Python
class A:
acount = 0 # class variable
def __init__(self, isFullA = True):
if (isFullA):
self.iamFullA = True
A.acount += 1
else:
self.iamFullA = False
def __del__(self):
if (self.iamFullA):
A.acount -= 1
class B(A):
bcount = 0 # class variable
def __init__(self, isFullB = True):
A.__init__(self,False)
if (isFullB):
self.iamFullB = True
B.bcount += 1
else:
self.iamFullB = False
def __del__(self):
if (self.iamFullB):
B.bcount -= 1
#MAIN
L=[]
for i in range(3):
L.append(A())
for i in range(2):
L.append(B())
print "A.acount = " + str(A.acount)
print "B.bcount = " + str(B.bcount)
La sortie est:
A.acount = 3
B.bcount = 2
Alors, quelle est votre question? Si vous souhaitez uniquement consulter le code, rendez-vous sur http://codereview.stackexchange.com/. – Holt
qu'en est-il de 'if isinstance (self, A): A.acount + = 1'? – Pynchia