Η Python 3.11 έρχεται με βελτιώσεις απόδοσης, επανασχεδιασμό προσωρινής αποθήκευσης και πολλά άλλα

Python

Η Python είναι μια υψηλού επιπέδου ερμηνευμένη γλώσσα προγραμματισμού της οποίας η φιλοσοφία δίνει έμφαση στην αναγνωσιμότητα του κώδικά της.

Μετά από ένα χρόνο ανάπτυξης, δημοσιεύτηκε η νέα έκδοση της γλώσσας προγραμματισμού Python 3.11, το νέο υποκατάστημα θα υποστηρίζεται για ενάμιση χρόνο και μετά θα δημιουργηθούν επιδιορθώσεις με ευπάθειες για άλλα τριάμισι χρόνια.

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

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

Κύρια νέα χαρακτηριστικά της Python 3.11

Σε αυτήν τη νέα έκδοση Σημαντική δουλειά έχει γίνει για τη βελτιστοποίηση της απόδοσης, καθώς ο νέος κλάδος περιλαμβάνει σχετικές αλλαγές με επιτάχυνση και ενσωματωμένη ανάπτυξη κλήσεων λειτουργιών, τη χρήση γρήγορων διερμηνέων τυπικών λειτουργιών, καθώς και βελτιστοποιήσεων που προετοιμάζονται από τα έργα Cinder και HotPy. Ανάλογα με τον τύπο του φορτίου, η ταχύτητα εκτέλεσης του κώδικα αυξάνεται μεταξύ 10% και 60%. Κατά μέσο όρο, η απόδοση κατά την επιτυχία της σουίτας δοκιμών pyperformance αυξήθηκε κατά 25%.

Ο μηχανισμός προσωρινής αποθήκευσης έχει επανασχεδιαστεί bytecode, που μείωσε τον χρόνο εκκίνησης του διερμηνέα κατά 10-15%. Τα αντικείμενα με κώδικα και bytecode κατανέμονται πλέον στατικά από τον διερμηνέα, γεγονός που κατέστησε δυνατή την εξάλειψη των βημάτων της αποκάλυψης bytecode που ανακτήθηκε από την κρυφή μνήμη και τη μετατροπή αντικειμένων με κώδικα για την τοποθέτησή τους στη μνήμη σωρού.

Προστέθηκε υποστήριξη για ομάδες εξαιρέσεων, το οποίο δίνει στο πρόγραμμα τη δυνατότητα να εγείρει και να επεξεργάζεται πολλές διαφορετικές εξαιρέσεις ταυτόχρονα. Νέοι τύποι εξαιρέσεων ExceptionGroup και BaseExceptionGroup προτείνονται για την ομαδοποίηση πολλαπλών εξαιρέσεων μαζί και η έκφραση "except* "προστίθεται για ξεχωριστές εξαιρέσεις από μια ομάδα.

Προστέθηκε ένας ειδικός τύπος LiteralString τόσο μόνος μπορεί να περιλαμβάνει κυριολεκτικές συμβολοσειρές που είναι συμβατές με τον τύπο LiteralString (δηλαδή γυμνές συμβολοσειρές και σειρές τύπου LiteralString, αλλά όχι αυθαίρετες ή μικτές συμβολοσειρές τύπου str). Ο τύπος LiteralString μπορεί να χρησιμοποιηθεί για τον περιορισμό της μετάδοσης ορισμάτων συμβολοσειρών σε συναρτήσεις, αυθαίρετη αντικατάσταση τμημάτων συμβολοσειρών όπου μπορεί να οδηγήσει σε ευπάθειες, για παράδειγμα, κατά τη δημιουργία συμβολοσειρών για ερωτήματα SQL ή εντολές φλοιού.

Επιπλέον, επίσης παρέχεται η δυνατότητα επισήμανσης μεμονωμένων στοιχείων λεξικών (TypedDict) με σημαίες Required και Not Required για τον προσδιορισμό των υποχρεωτικών και προαιρετικών πεδίων (από προεπιλογή, όλα τα δηλωμένα πεδία απαιτούνται εάν η συνολική παράμετρος δεν έχει οριστεί σε Απομίμηση).

Προστέθηκε @dataclass_transform διακοσμητής κλάσης, μεθόδου και λειτουργιών, όταν καθορίζεται, ο έλεγχος στατικού τύπου αντιμετωπίζει το αντικείμενο σαν να χρησιμοποιεί τον διακοσμητή @dataclasses.dataclass.

Από τις άλλες αλλαγές που ξεχωρίζουν σε αυτήν τη νέα έκδοση:

  • Προστέθηκε η δυνατότητα χρήσης ατομικής ομαδοποίησης ((?>…)) και ζηλιάρης (κτητική) ποσοτικοποιητές (*+, ++, ?+, {m,n}+) σε κανονικές εκφράσεις.
  • Προστέθηκε ο τύπος TypeVarTuple, ο οποίος επιτρέπει τη χρήση γενικών μεταβλητών, σε αντίθεση με το TypeVar, που δεν καλύπτει έναν τύπο, αλλά έναν αυθαίρετο αριθμό τύπων.
  • Η τυπική βιβλιοθήκη περιλαμβάνει τη λειτουργική μονάδα tomllib με λειτουργίες για την ανάλυση της μορφής TOML.
  • Η μέθοδος add_note() έχει προστεθεί στην κλάση BaseException, η οποία επιτρέπει την επισύναψη μιας σημείωσης κειμένου στην εξαίρεση, για παράδειγμα για την προσθήκη πληροφοριών συμφραζομένων που δεν ήταν διαθέσιμες τη στιγμή που έγινε η εξαίρεση.
  • Ένας ειδικός τύπος Self έχει προστεθεί για να αντιπροσωπεύει την τρέχουσα ιδιωτική τάξη. Το Self μπορεί να χρησιμοποιηθεί για τον σχολιασμό μεθόδων που επιστρέφουν μια παρουσία της κλάσης σας με πιο απλό τρόπο από τη χρήση του TypeVar.
  • Προστέθηκε η επιλογή γραμμής εντολών "-P" και η μεταβλητή περιβάλλοντος PYTHONSAFEPATH για την απενεργοποίηση της αυτόματης σύνδεσης δυνητικά μη ασφαλών διαδρομών αρχείων στο sys.path.
  • Το βοηθητικό πρόγραμμα py.exe για την πλατφόρμα των Windows έχει βελτιωθεί σημαντικά ώστε να υποστηρίζει τη σύνταξη "-V:". / " Επιπρόσθετα "- . ».
  • Πολλές μακροεντολές C API έχουν μετατραπεί σε κανονικές ή στατικές ενσωματωμένες συναρτήσεις
  • Οι ενότητες uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev και sunau έχουν καταργηθεί και θα καταργηθούν από το Pythonth. 3.13 έκδοση.
  • Καταργήθηκαν οι συναρτήσεις PyUnicode_Encode*.
  • Η κλάση TaskGroup προστέθηκε στη λειτουργική μονάδα asyncio με την εφαρμογή ενός ασύγχρονου διαχειριστή περιβάλλοντος που περιμένει να ολοκληρωθεί η ομάδα εργασιών.
  • Η προσθήκη εργασιών σε μια ομάδα γίνεται χρησιμοποιώντας τη μέθοδο create_task().

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


Προσθήκη ως προτιμώμενης πηγής στην Google