Δημοσιεύτηκε: 23 Μαρ 2011, 00:49
από b_real
χαιρεται,βλεπω οτι ξεθαβω θεμα κ προχωραω :P
εχουμε το εξης απλο κωδικα
Spoiler: show
Κώδικας: Επιλογή όλων

class animals:
posotita = 0
def __init__(self,onoma,xrwma,podia):
self.onoma=onoma
self.xrwma=xrwma
self.podia=podia
animals.posotita += 1
#print 'ok'
def __del__(self):
animals.posotita -=1
print ('phres podi')


def howMany():
'''Prints the current population.'''
print('We have {0:d} animals.'.format(animals.posotita))
howMany = staticmethod(howMany)

pipi = animals('lala','lalo',4)
pipo = animals('papa','papi',4)
print (animals.howMany())
del pipi
del pipo
print (animals.howMany())

γιατι αν βγαλω τα 2 del οταν το τρεχω μου πεταει; αυτα;;;;
πρεπει οπωσδηποτε να τα καλουμε εφοσον εχουμε ορισει __del__ ;;
Spoiler: show
Exception AttributeError: "'NoneType' object has no attribute 'posotita'" in <bound method animals.__del__ of <__main__.animals object at 0x7f09421ae990>> ignored
Exception AttributeError: "'NoneType' object has no attribute 'posotita'" in <bound method animals.__del__ of <__main__.animals object at 0x7f09421ae8d0>> ignored

επισης οταν το τρεχω ετσι οπως ειναι που εκτυπωνεται το εξης:
Spoiler: show
We have 2 animals.
None
phres podi
phres podi
We have 0 animals.
None

το "None" τι στο καλο ειναι;;;