On Saturday 04 of September 2010 16:27:57 Mikey Moose wrote:
> Αργκ ξέχασα να το στείλω στη λίστα.
>> Στις 4 Σεπτεμβρίου 2010 4:27 μ.μ., ο χρήστης Mikey Moose <
>>unfortunate42 at gmail.com> έγραψε:
> > Θα το πάω λίγο ψηλαφητά και θα προτείνω την ιδέα ότι οι Exceptions δεν
> > προτείνονται ως δομή ελέγχου μόνο λογω του ότι είναι βαριές. Θαρρώ πως το
> > όλο θέμα ξεκίνησε από τη Java που είναι όντως βαριές.
> >
Βασικά, τα exceptions εισήχθησαν στις γλώσσες προγραμματισμού για καλύτερο
(read, πιο απλό) έλεγχο λαθών σε σχέση με τη C και όχι ως δομή ελέγχου, καθώς
υπάρχουν ήδη τόσες. Το θέμα της απόδοσης είναι δευτερεύον σημασιολογικά.
Στοχεύουν στον έλεγχο λαθών και άλλη χρήση τους οδηγεί στην παραβίαση της
http://en.wikipedia.org/wiki/Principle_of_least_astonishment (φυσικά, τίποτα
στη ζωή δεν είναι απόλυτο, όπως, για να επανέλθουμε, δεν είναι απόλυτο και τι
είναι λάθος).
Τώρα, στη Java αν είναι βαριές, δε γνωρίζω, αλλά πάλι υπάρχει Java χωρίς
exceptions;
> > Ξέρουμε αν είναι βαριές στην Python;
Ανάλογα την περίπτωση.
Στο επισυναπτόμενο (ελπίζω να μην έχω λάθος :P ) υπάρχουν δύο συναρτήσεις, μία
που χρησιμοποιεί exceptions και μία που δε χρησιμοποιεί. Εκτέλεσέ τες με
python -m timeit "import test_exceptions; test_exceptions.exceptions(t)"
python -m timeit "import test_exceptions; test_exceptions.no_exceptions(t)"
όπου t είναι μεταβλητή του προγράμματος (δες τον κώδικα τι κάνει). Δοκίμασε
για διάφορες τιμές του t να πάρεις αποτελέσματα και να βγάλεις συμπεράσματα :)
Hint: τόσο για << 1000, ~= 1000 όσο και >> 1000
Αποστόλης
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_exceptions.py
Type: text/x-python
Size: 487 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/taspython/attachments/20100904/aaa49398/attachment.py>