[PyAthens] Μια ιστορία πόνου

Christos Georgiou tzot at sil-tec.gr
Sun May 16 21:11:10 CEST 2010


Χαίρετε, ω συνάρρωστοι. Γράφω αυτό το κειμενάκι για να πω τον πόνο μου 
σε κάποιους ανθρώπους που μπορούν να με καταλάβουν. Δεν θέλω να με 
συμπονέσετε, να με οικτίρετε, να με στηρίξετε· θέλω μόνο να με ακούσετε.

Εν πρώτοις, ένα link:
http://stackoverflow.com/questions/2484156/

Στο stackoverflow.com , κάποιος άνθρωπος ζήτησε τρόπο να αντικαθιστά σε 
ένα string τους χαρακτήρες που είναι ειδικοί για την HTML με charrefs 
(χοντρικά). Η δική του λύση είναι:

return string.replace('&', '&amp;').replace('<', '&lt;').replace('>', 
'&gt;').replace("'", '&#39;').replace('"', '&quot;')

Λέει πως δεν του άρεσε που πρέπει να κάνει .replace για κάθε χαρακτήρα, 
και λέει, «υπάρχει multi_replace»;

Οι απαντήσεις ήταν διάφορες, και μία που ήταν ουσιαστικά μια απάντηση 
επί θεωρίας, τύπου «μην αγχώνεσαι για κάτι τέτοια», είναι η επιλεγμένη.

Όλα έχουν καλώς. Εγώ σκέφτηκα, «αυτό που ζητάει, θα καλυπτόταν πλήρως 
από την unicode.translate για strings, πλην όμως αυτή δεν μπορεί να 
χρησιμοποιήσει replacements με μήκος άνω του ενός χαρακτήρα. Ας του 
γράψω κάτι τέτοιο.»

Και του έγραψα ουσιαστικά αυτό.

Έρχεται ένας νεαρός Γερμανός (δεν με ενοχλεί η ηλικία του, ούτε θέλω να 
βρω ευκαιρία να χτυπήσω έμμεσα την Άγγελα Μέρκελ, έτσι;) ο οποίος με 
αρκετή συγκατάβαση μου λέει πως η απάντηση: [1] είναι λάθος (δεν είναι), 
[2] είναι μπερδεμένη (για ταχύτητα χρησιμοποίησα λειτουργίες από 
itertools, οπότε κινήθηκα σε functional territory, μη προφανές, ίσως, σε 
πολλούς πυθωνίστες, οπότε έχει μερικό δίκαιο), [3] είναι inefficient 
(δεν είναι, και η αιτιολόγησή του δείχνει μη κατανόηση του κώδικα), [4] 
περιορίζεται σε byte strings και δεν είναι i18n friendly (ναι, δεν ήταν, 
αλλά δεν απαιτείτο από την ερώτηση· όπως και να έχει, βελτίωσα την 
απάντησή μου για να την κάνω unicode friendly).

Του απάντησα καταλλήλως (για σχετικά δικές μου τιμές του καταλλήλως:), 
αλλά ο τύπος επιμένει πως ο κώδικας είναι λάθος, αφού ο ίδιος τον 
ερμηνεύει λάθος. Αναφέρεται στην ασαφή σειρά που έχουν τα κλειδιά ενός 
dict, την ώρα που εγώ πουθενά δεν καλώ dict.__iter__, παρά μόνο 
dict.__getitem__. Είναι προφανές πως μιλάει χωρίς να έχει δοκιμάσει τον 
κώδικα. Ακόμα πιο προφανές είναι πως πάσχει από την προγραμματιστική 
ύβρι (που σε λογικές δόσεις είναι καλή και επιθυμητή) σε επίπεδο 
αλαζονείας και άγνοιας.

http://stackoverflow.com/questions/2484156/is-str-replace-replace-ad-nauseam-a-standard-idiom-in-python/2487614#2487614

Το ζουμί της υπόθεσης είναι πως θα ήθελα να ήμουν δάσκαλος του ζεν και 
εκείνος να είναι ο μαθητής μου, ώστε να μπορούσα να του φέρω μια στο 
κεφάλι με ένα σκουπόξυλο και εκείνος μετά να διαφωτιστεί.

Αυτά· σας ευχαριστώ που φτάσατε μέχρι εδώ όσοι φτάσατε.

ΥΓ τι υπεργαμάτο που είναι το TASPython που επέλεξαν τα Πατρινά ξαδέλφια 
  μας;


More information about the PyAthens mailing list