Έρχεται η νέα σταθερή έκδοση της Python 3.12 και αυτά είναι τα νέα χαρακτηριστικά της

Λογότυπο Python

Η Python είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου.

Μετά από ένα χρόνο ανάπτυξης, Ανακοινώθηκε η κυκλοφορία της σταθερής έκδοσης και επίσης την έναρξη της φάσης άλφα δοκιμής της γλώσσας προγραμματισμού Python 3.12 και Python 3.13 (αντίστοιχα). Αναφέρεται ότι αυτός ο νέος κλάδος της Python 3.12 θα υποστηρίζεται για ενάμιση χρόνο, μετά τον οποίο, για άλλα τρεισήμισι χρόνια, θα δημιουργηθούν διορθώσεις για την εξάλειψη των τρωτών σημείων.

Η νέα έκδοση της Python 3.12 που παρουσιάζεται συνοδεύεται από βελτιώσεις στο ευελιξία ανάλυσης f-string. Με αυτή τη βελτίωση τώρα πολλοί περιορισμοί μπορούν να παραμεριστούν, αφού για παράδειγμα μπορείτε πλέον να περιέχει οποιαδήποτε έγκυρη έκφραση στην Python, συμπεριλαμβανομένων εκφράσεων πολλαπλών γραμμών, σχολίων, ανάστροφων καθέτων και ακολουθιών διαφυγής Unicode. Επιπλέον, οι εσωτερικές συμβολοσειρές επιτρέπουν πλέον την επαναχρησιμοποίηση των ίδιων εισαγωγικών, δηλαδή τα διπλά εισαγωγικά μπορούν πλέον να επαναχρησιμοποιηθούν μέσα χωρίς να χρειάζεται να αλλάξετε σε μεμονωμένα εισαγωγικά.

Για παράδειγμα:

f"""{f"''{f'{f"{1+1}"}'}'''}"""

Είναι πλέον δυνατή η αυθαίρετη ένθεση:

f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"

Μια άλλη από τις αλλαγές που ξεχωρίζει είναι η υποστήριξη για μεμονωμένους υποδιερμηνείς και ξεχωριστές καθολικές κλειδαριές, τα οποία έχουν σκοπό να αυξήσουν την αποτελεσματικότητα της χρήσης πόρων σε συστήματα πολλαπλών πυρήνων, καθώς για διαφορετικούς διερμηνείς εντός μιας διεργασίας το CPython επιτρέπει σε πολλούς διερμηνείς να εκτελούνται ταυτόχρονα σε μια διεργασία. Ως έχει, η λειτουργία είναι προς το παρόν διαθέσιμη μόνο μέσω C-API (η υποστήριξη Python API θα εμφανιστεί στον επόμενο μεγάλο κλάδο).

Πέραν αυτού, τονίζεται επίσης ότιΤο ενημερωτικό περιεχόμενο των μηνυμάτων σφάλματος έχει αυξηθεί και το φάσμα των εξαιρέσεων έχει διευρυνθεί, προσφέροντας συστάσεις για την εξάλειψη τυπογραφικών λαθών. Για παράδειγμα, εμφανίζονται τώρα προτάσεις για εισαγωγή ξεχασμένων τυπικών λειτουργικών μονάδων βιβλιοθήκης και προτάσεις για πρόθεμα "self".

Προστέθηκε η δυνατότητα χρήσης του πρωτοκόλλου buffer στον κώδικα Python. Οι κλάσεις που παρέχουν μια μέθοδο "__buffer__()" μπορούν τώρα να χρησιμοποιηθούν ως τύποι που λειτουργούν απευθείας σε δυαδικά δεδομένα στη μνήμη.

Η ενότητα Το sys.monitoring προτείνεται για εντοπισμό σφαλμάτων και δημιουργία προφίλ, που σας επιτρέπει να παρακολουθείτε συμβάντα στο CPython όπως κλήσεις, επιστροφές συναρτήσεων, εκτέλεση αυθαίρετων γραμμών κώδικα, εξαιρέσεις και μεταβάσεις με ελάχιστη επιβάρυνση.

Ο διερμηνέας υλοποιεί υποστήριξη για το υποσύστημα απόδοσης πυρήνα Linux, το οποίο επιτρέπει τον προσδιορισμό ονομάτων συναρτήσεων Python κατά τη δημιουργία προφίλ χρησιμοποιώντας το βοηθητικό πρόγραμμα απόδοσης (προηγουμένως, μόνο τα ονόματα συναρτήσεων C προσδιορίζονταν σε ίχνη).

Όσον αφορά τις βελτιώσεις απόδοσης, αναφέρεται ότι οι βελτιστοποιήσεις συνεχίστηκαν, με την οποία Έχει επιτευχθεί συνολικό κέρδος απόδοσης που εκτιμάται σε 5%., προστέθηκε επίσης πειραματική υποστήριξη για το δυαδικό βελτιστοποιητή BOLT στη διαδικασία κατασκευής, αυξάνοντας την απόδοση κατά 1-5%, ενώ η απόδοση του πακέτου asyncio έχει βελτιωθεί σημαντικά (ορισμένες δοκιμές δείχνουν επιτάχυνση 75%).

Έχει εφαρμοστεί ενσωματωμένη επέκταση κατανοήσεων λιστών, η οποία επιταχύνει την εργασία με κατανοήσεις λιστών έως και δύο φορές (για κώδικα που χρησιμοποιεί ενεργά κατανοήσεις λιστών, η δοκιμή έδειξε συνολική αύξηση απόδοσης κατά 11%).

Για τη βελτίωση της ασφάλειας, ενσωματωμένες υλοποιήσεις του Οι αλγόριθμοι SHA1, SHA3, SHA2-384, SHA2-512 και MD5 στο hashlib έχουν αντικατασταθεί με επίσημα επαληθευμένες επιλογές από το έργο HACL* (οι ενσωματωμένες υλοποιήσεις χρησιμοποιούνται μόνο εάν το OpenSSL δεν είναι διαθέσιμο).

Του άλλες αλλαγές που ξεχωρίζουν:

  • Η μονάδα έχει διευρυμένη υποστήριξη για Windows.
  • Η Python εφαρμόζει προστασία υπερχείλισης στοίβας.
    Η δημιουργία της κλάσης asyncio.Task έχει επιταχυνθεί.
  • Το μέγεθος των αντικειμένων Unicode έχει μειωθεί κατά 8 έως 16 byte.
  • Οι λειτουργίες με κανονικές εκφράσεις re.sub(), re.subn() και re.Pattern έχουν επιταχυνθεί.
  • Η εκτέλεση ελέγχων isinstance() για ορισμένα πρωτόκολλα έχει επιταχυνθεί κατά 2 έως 20 φορές.
  • Σημαντικά (σε ορισμένες δοκιμές έως και 64%) οι συναρτήσεις tokenize.tokenize() και tokenize.generate_tokens() έχουν επιταχυνθεί.
  • Η φόρτωση χαρακτηριστικών και η κλήση της μεθόδου super() έχουν επιταχυνθεί.
  • Μια νέα, πιο συμπαγής σύνταξη σχολιασμού έχει προταθεί για γενικές κατηγορίες και συναρτήσεις.
  • Η μονάδα προγράμματος περιήγησης ιστού δεν υποστηρίζει πλέον παλαιότερα προγράμματα περιήγησης, συμπεριλαμβανομένων των Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird και Firefox έως την έκδοση 36.
  • Κατά την προετοιμασία για μελλοντικές βελτιστοποιήσεις, η εσωτερική αναπαράσταση των ακεραίων αριθμών έχει αλλάξει.

Τελευταίο αλλά εξίσου σημαντικό, όπως αναφέρθηκε, ξεκίνησε η δοκιμή άλφα της Python 3.13, στην οποία εμφανίστηκε μια λειτουργία μεταγλώττισης CPython χωρίς καθολικό κλείδωμα διερμηνέα (GIL, Global Interpreter Lock).

Το κλαδί Η Python 3.13 θα είναι σε alpha για επτά μήνες, κατά τη διάρκεια της οποίας θα προστεθούν νέες δυνατότητες και θα διορθωθούν σφάλματα σύμφωνα με το νέο πρόγραμμα ανάπτυξης, η εργασία σε ένα νέο κλάδο ξεκινά πέντε μήνες πριν από την κυκλοφορία του προηγούμενου κλάδου και μέχρι να φτάσει η επόμενη έκδοση στο στάδιο δοκιμής alpha.

Μετά από αυτό, οι εκδόσεις beta θα δοκιμαστούν για τρεις μήνες, κατά τους οποίους θα απαγορεύεται η προσθήκη νέων λειτουργιών και θα δοθεί όλη η προσοχή στην επιδιόρθωση σφαλμάτων. Τους τελευταίους δύο μήνες πριν από την κυκλοφορία, το υποκατάστημα θα βρίσκεται στο στάδιο της υποψήφιας κυκλοφορίας, όπου θα γίνει η τελική σταθεροποίηση.

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