Wenn du keine Umlaute verwenden willst, dann schreib doch gleich "size".
Es ist wesentlich lesbarer, wenn man nicht nach jedem Komma noch ein Leerzeichen setzt.
Gleichzeichen in Klammern würde ich ganz ohne Leerzeichen schreiben.
None ist ein reserviertes Wort in Python, das man in solchen Fällen auch ruhig verwenden sollte. Dein "none" ist ja einfach nur ein String.
Beim Zugriff auf eine Variable macht man keine Anführungszeichen (denn die stehen für einen String). Zudem muss "self.grosse" auch an "grosse" und nicht wie bei dir an "klein" gebunden sein.
Weiterhin solltest du dich schon entscheiden, ob du die Argumente bei der Bestellfunktion oder bei der Initialisierung mitgeben willst. Für letzteres wäre dies eine mögliche Lösung:
Code: Alles auswählen
class Pizza(object):
def __init__(self, size='normal', topping=None):
self.size = size
self.topping = topping
def order(self):
print 'Your %s pizza with %s has been ordered' % (self.size, self.topping)
def main():
p = Pizza('small', 'ham')
p.order()
Code: Alles auswählen
ham = Pizza(size=small, topping='ham')
peperoni = Pizza(topping='peperoni') # wenn keine Größe angegeben wird, nimmt die Klasse aus dem Beispiel ja "normal"
order(ham, peperoni)
EDIT: Wobei die Behandlung einer unbekannten Zahl an Argumenten für den Anfang vielleicht doch etwas viel ist. Zudem ist eigentlich gar keine Klasse nötig, wenn es wirklich nur um Größe und Belag geht. Da kann auch eine "normale" Funktion genommen werden, die dann der Funktion "order()" übergeben wird.