Oha... da sieht ja einiges ziemlich schräg aus.
Als erstes: Wieso erstellst Du ein Dictionary, in welchem augenscheinlich die Keys mit den Werten vertauscht sind und welches Du dann nachträglich umänderst? Lege das Dict doch gleich richtig herum an!
"bauen" ist ein Verb - das zeigt Dir quasi schon, dass es nicht sinnvoll ist, eine Klasse so zu nennen. (Laut PEP8 schreibt man Klassennamen auch groß)
Generell wirkt das ganze zu gekünstelt. baue_haus() etwa baut ja nicht wirklich ein Haus, sondern prüft ja eher Bedingungen ab und printen Nachrichten.
Imho solltest Du Dir nicht theoretisch überlegen, wie man Klassen konstruiert, sondern ein sinnvolles Beispiel finden. Ggf. schau Dir mal in der Doku die Standard-Module an und gucke, wo es da Klassen gibt und welche Methoden sie bieten.
Als Klassiker könnte ich mir eine Bruch-Klasse vorstellen. Diese hat als Attribute Zähler und Nenner (wie auch immer die auf Englisch heißen
) und Du implementierst dann eben Standard-Operationen wie "add", "sub", usw. Zusätzlich ggf. noch Vergleichsoperationen, sowie eine __str__ und __repr__ Methode.
Ansonsten: Hast Du nicht irgend ein Programmier-Projekt, welches Du gerade verfolgst? Wenn ja, gibt es evtl. dort eine Möglichkeit, sinnvoll eine Klasse zu kreieren?