Im Buch ist folgender Code samt Ausgabe gegeben, und wenn ich den Code ausführe, funktioniert auch alles:
Code: Alles auswählen
#!/usr/bin/python
class Person:
'''Stellt eine Person dar.'''
bevoelkerung = 0
def __init__(self, name):
'''Initialisiert die Daten der Person.'''
self.name = name
print '(Initialisiere %s)' % self.name
# Wenn diese Person erzeugt wird,
# traegt er/sie zur Bevoelkerung bei
Person.bevoelkerung += 1
def __del__(self):
'''Ich sterbe.'''
print '%s verabschiedet sich.' % self.name
Person.bevoelkerung -= 1
if Person.bevoelkerung == 0:
print 'Ich bin der letzte.'
else:
print 'Es gibt noch %d Leute.' % Person.bevoelkerung
def sagHallo(self):
'''Begruessung durch die Person.
Das ist wirklich alles, was hier geschieht.'''
print 'Hallo, mein Name ist %s.' % self.name
def wieViele(self):
'''Gibt die aktuelle Bevoelkerungszahl aus.'''
if Person.bevoelkerung == 1:
print 'Ich bin ganz allein hier.'
else:
print 'Es gibt hier %d Leute.' % Person.bevoelkerung
swaroop = Person('Swaroop')
swaroop.sagHallo()
swaroop.wieViele()
kalam = Person('Abdul Kalam')
kalam.sagHallo()
kalam.wieViele()
swaroop.sagHallo()
swaroop.wieViele()
Code: Alles auswählen
(Initialisiere Swaroop)
Hallo, mein Name ist Swaroop.
Ich bin ganz allein hier.
(Initialisiere Abdul Kalam)
Hallo, mein Name ist Abdul Kalam.
Es gibt hier 2 Leute.
Hallo, mein Name ist Swaroop.
Es gibt hier 2 Leute.
Abdul Kalam verabschiedet sich.
Es gibt noch 1 Leute.
Swaroop verabschiedet sich.
Ich bin der letzte.
Code: Alles auswählen
#!/usr/bin/python
#-*- coding: utf-8 -*-
class Person:
bevoelkerung = 0
def __init__(self, name):
self.name = name
print "Initialisiere %s..." % self.name
Person.bevoelkerung += 1
def __del__(self):
print "%s stirbt." % self.name
Person.bevoelkerung -= 1
if Person.bevoelkerung == 0:
print "Ich war der letzte."
else:
print "Es gibt aber noch %d andere." % Person.bevoelkerung
def sagHallo(self):
print "Hallo, mein Name ist %s." % self.name
def wieViele(self):
if Person.bevoelkerung == 1:
print "Ich bin ganz allein hier."
else:
print "Es gibt hier %d Personen." % Person.bevoelkerung
dennis = Person("Dennis")
dennis.sagHallo()
dennis.wieViele()
kalam = Person("Kalam")
kalam.sagHallo()
kalam.wieViele()
dennis.sagHallo()
dennis.wieViele()
Code: Alles auswählen
Initialisiere Dennis...
Hallo, mein Name ist Dennis.
Ich bin ganz allein hier.
Initialisiere Kalam...
Hallo, mein Name ist Kalam.
Es gibt hier 2 Personen.
Hallo, mein Name ist Dennis.
Es gibt hier 2 Personen.
Kalam stirbt.
Es gibt aber noch 1 andere.
Dennis stirbt.
Exception AttributeError: "'NoneType' object has no attribute 'bevoelkerung'" in <bound method Person.__del__ of <__main__.Person instance at 0x2652c68>> ignored