Seite 2 von 2
Re: Gebt mir Tipps
Verfasst: Mittwoch 8. April 2015, 16:39
von Hyperion
bwbg hat geschrieben:
Zu 2) bin ich noch nicht ganz überzeugt. None eignet sich doch hervorrangend als (mögliches) Ergebnis für eine Operation, welche fehlschlagen kann.
Nicht unbedingt! Im Grunde genommen sind dafür Exceptions oftmals die wesentlich bessere Wahl - denn damit kann ich die Fehlerbehandlung flexibel im Call-Stack behandeln, muss es also nicht unmittelbar an der aufrufenden Stelle tun. Bei einem möglichen ``None`` muss ich eigentlich immer *sofort* prüfen, ob ich etwas bekommen habe, da ich ansonsten *irgend einen* Fehler wie z.B. einen ``AttributeError`` bekomme.
Mal als Beispiel:
Code: Alles auswählen
In [3]: def get_configuration():
...: return None
...:
In [4]: config = get_configuration()
In [5]: config.some_property
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-5-c6a6cf6a3f6f> in <module>()
----> 1 config.some_property
AttributeError: 'NoneType' object has no attribute 'some_property'
[5] ist hier die entscheidene Zeile, in der ich mein Resultat *irgend wie* benutzen will. Ich gehe davon aus, ein bestimmtes Objekt zu bekommen, welches eben ein Attribut ``some_property`` hält. Ich könnte da aber auch eine arithmetische Operation durchführen usw. Dann würde im Call-Stack eine quasi beliebige Exception durchgereicht.
Werfe ich hingegen eine *spezielle* Exception, wenn ich die Konfiguration nicht erstellen kann, so kann ich das zielgerichtet abfangen und zwar dort, wo es sinnvoll erscheint.
Re: Gebt mir Tipps
Verfasst: Donnerstag 9. April 2015, 07:42
von bwbg
Nach einer Nacht drüber schlafen ziehe ich meine Punkte 1 und 2 zurück und behaupte das Gegenteil. Das ganze werde ich nochmal in meine gedankliche Entwurfsabteilung geben.
Re: Gebt mir Tipps
Verfasst: Samstag 11. April 2015, 10:58
von Mr.White
Sorry, ich komme überhaupt nicht mit. Vielleicht habt ihr ein paar Vorschläge zum lernen für mich. Habe eine Menge
Ideen aber überhaupt keine Ahnung wie ich das mit der Umsetzung mache.. Da währe z.B ein Bot und zum
Code der hier Präsentiert wird - Sowas hab ich noch nie gesehen -
Re: Gebt mir Tipps
Verfasst: Samstag 11. April 2015, 15:40
von BlackJack
@Mr.White: Es gibt im Netz ein paar Seiten wo man Probleme/Aufgaben findet, die man mit Hilfe von Programmen lösen kann. Mal als Beispiele:
Project Euler,
Sphere Online Judge (SPOJ),
HP CodeWars, und
Reddit: Dailyprogrammer.
Re: Gebt mir Tipps
Verfasst: Dienstag 14. April 2015, 10:34
von Kebap
@Mr.White, du benutzt Klassen, davon würde ich erstmal abraten.
Lerne erstmal Funktionen sinnvoll einzusetzen.
Dein Code ist momentan ein einziges Spaghetti-Wirrwarr aus If/Else/usw. bis in die zehnte Stufe.
Da kann niemand sinnvoll drüberschauen.
Versuch mal die Sachen in einzelne Funktionen aufzuteilen, die alle nicht tiefer als maximal 2-3 If-Stufen gehen dürfen.
Auch Listen/Dicts würde ich empfehlen zum rumspielen, bevor du wieder Klassen versuchst.
Nicht zu viel gleichzeitig oder zu schnell lernen, das verwirrt eher.