პითონი არის მაღალი დონის ინტერპრეტირებული პროგრამირების ენა, რომლის ფილოსოფია ხაზს უსვამს მისი კოდის წაკითხვას.
ერთი წლის განვითარების შემდეგ, გამოქვეყნდა პროგრამირების ენის Python 3.11 ახალი ვერსია, ახალი ფილიალის მხარდაჭერა წელიწადნახევარი იქნება, რის შემდეგაც მოწყვლადობის მქონე პატჩები კიდევ სამწელიწადნახევრის განმავლობაში შეიქმნება.
პარალელურად დაიწყო Python 3.12 ფილიალის ალფა ტესტირება (განვითარების ახალი გრაფიკის მიხედვით, ახალ ფილიალზე მუშაობა იწყება წინა ფილიალის გამოშვებამდე ხუთი თვით ადრე და აღწევს ალფა ტესტირებას შემდეგი ვერსიის მომენტისთვის).
Python 3.12 ფილიალი იქნება ალფა გამოშვებებში შვიდი თვის განმავლობაში, რომლის განმავლობაშიც დაემატება ახალი ფუნქციები და გამოსწორდება შეცდომები. ამის შემდეგ სამი თვის განმავლობაში ჩატარდება ბეტა ტესტირება, რომლის განმავლობაშიც აიკრძალება ახალი ფუნქციების დამატება და სრული ყურადღება დაეთმობა შეცდომების გამოსწორებას. გაშვებამდე ბოლო ორი თვით ადრე ფილიალი იქნება გაშვების კანდიდატის ეტაპზე, რა დროსაც მოხდება საბოლოო სტაბილიზაცია.
Python 3.11-ის ძირითადი ახალი ფუნქციები
ამ ახალ ვერსიაში მნიშვნელოვანი სამუშაო გაკეთდა მუშაობის ოპტიმიზაციისთვის, რადგან ახალი ფილიალი მოიცავს შესაბამის ცვლილებებს ფუნქციის ზარების აჩქარებითა და ინლაინ განლაგებითტიპიური ოპერაციების სწრაფი ინტერპრეტატორების გამოყენება, ასევე Cinder და HotPy პროექტების მიერ მომზადებული ოპტიმიზაცია. დატვირთვის ტიპის მიხედვით, კოდის შესრულების სიჩქარე იზრდება 10%-დან 60%-მდე. საშუალოდ, შესრულება pyperformance ტესტის კომპლექტის გავლისას გაიზარდა 25%-ით.
ქეშირების მექანიზმი შეიცვალა ბაიტიკოდის, რამაც 10-15%-ით შეამცირა თარჯიმანის გაშვების დრო. კოდით და ბაიტიკოდით ობიექტები ახლა სტატიკურად არის გამოყოფილი თარჯიმანის მიერ, რამაც შესაძლებელი გახადა ქეშიდან ამოღებული ბაიტეკოდის ამოხსნის საფეხურების აღმოფხვრა და ობიექტების კოდით გადაქცევა გროვის მეხსიერებაში მათი განთავსებისთვის.
დაემატა გამონაკლის ჯგუფების მხარდაჭერა, რაც პროგრამას აძლევს შესაძლებლობას მოახდინოს და დაამუშავოს რამდენიმე განსხვავებული გამონაკლისი ერთდროულად. გამონაკლისების ახალი ტიპები ExceptionGroup და BaseExceptionGroup შემოთავაზებულია მრავალი გამონაკლისის ერთად დაჯგუფებისთვის და გამონათქვამი "გარდა* "ემატება ცალკეულ გამონაკლისებს ჯგუფიდან.
დაემატა სპეციალური LiteralString ტიპი ასე მარტო შეიძლება შეიცავდეს ლიტერალურ სტრიქონებს, რომლებიც თავსებადია ტიპთან LiteralString (ანუ LiteralString ტიპის შიშველი სტრიქონები და სტრიქონები, მაგრამ არა str ტიპის თვითნებური ან შერეული სტრიქონები). LiteralString ტიპი შეიძლება გამოყენებულ იქნას სიმებიანი არგუმენტების ფუნქციებზე გადაცემის შესაზღუდად, სტრიქონების ნაწილების თვითნებური ჩანაცვლებისთვის, სადაც შეიძლება გამოიწვიოს დაუცველობა, მაგალითად, სტრიქონების გენერირებისას SQL მოთხოვნებისთვის ან shell ბრძანებებისთვის.
გარდა ამისა, ასევე გათვალისწინებულია ლექსიკონების ცალკეული ელემენტების მონიშვნის შესაძლებლობა (TypedDict) Required და Not Required დროშებით საჭირო და არასავალდებულო ველების დასადგენად (ნაგულისხმევად, ყველა გამოცხადებული ველი საჭიროა, თუ ჯამური პარამეტრი არ არის დაყენებული ყალბი).
დამატებულია @dataclass_transform კლასის, მეთოდისა და ფუნქციის დეკორატორი, როდესაც მითითებულია, სტატიკური ტიპის შემმოწმებელი ექცევა ობიექტს ისე, თითქოს იყენებს @dataclasses.dataclass დეკორატორს.
სხვა ცვლილებებიდან, რომლებიც გამოირჩევა ამ ახალ ვერსიაში:
- დაემატა ატომური დაჯგუფების ((?>…)) და ეჭვიანი (მფლობელობის) რაოდენობების (*+, ++, ?+, {m,n}+) გამოყენების შესაძლებლობა რეგულარულ გამოსახულებებში.
- დაემატა TypeVarTuple ტიპი, რომელიც იძლევა ცვლადი გენერიკების გამოყენების საშუალებას, განსხვავებით TypeVar-ისგან, რომელიც მოიცავს არა ერთ ტიპს, არამედ ტიპების თვითნებურ რაოდენობას.
- სტანდარტული ბიბლიოთეკა მოიცავს tomllib მოდულს ფუნქციებით TOML ფორმატის გასაანალიზებლად.
- Add_note() მეთოდი დაემატა BaseException კლასს, რომელიც საშუალებას აძლევს ტექსტის შენიშვნას დაერთოს გამონაკლისს, მაგალითად, დაამატოთ კონტექსტური ინფორმაცია, რომელიც მიუწვდომელი იყო გამონაკლისის ჩაგდების დროს.
- ამჟამინდელი კერძო კლასის წარმოსაჩენად დაემატა სპეციალური ტიპი Self. Self შეიძლება გამოყენებულ იქნას მეთოდების ანოტაციისთვის, რომლებიც აბრუნებენ თქვენი კლასის მაგალითს უფრო მარტივი გზით, ვიდრე TypeVar-ის გამოყენებით.
- დამატებულია "-P" ბრძანების ხაზის ვარიანტი და PYTHONSAFEPATH გარემოს ცვლადი, რათა გამორთოთ პოტენციურად სახიფათო ფაილის ბილიკების ავტომატური კავშირი sys.path-თან.
- Windows პლატფორმისთვის py.exe პროგრამა მნიშვნელოვნად გაუმჯობესდა "-V:" სინტაქსის მხარდასაჭერად. / " დამატებით "- . ».
- ბევრი C API მაკრო გადაკეთდა რეგულარულ ან სტატიკურ შიდა ფუნქციებად
- uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev და sunau მოდულები მოძველებულია და წაიშლება Pyth-დან. 3.13 გამოშვება.
- წაშლილია PyUnicode_Encode* ფუნქციები.
- TaskGroup კლასი დაემატა asyncio მოდულს ასინქრონული კონტექსტური მენეჯერის განხორციელებით, რომელიც ელოდება დავალების ჯგუფის დასრულებას.
- ჯგუფში ამოცანების დამატება ხდება create_task() მეთოდის გამოყენებით.
საბოლოოდ თუ გაინტერესებთ ამის შესახებ მეტი იცოდეთ, დეტალების შემოწმება შეგიძლიათ აქ შემდეგი ბმული.
იყავი პირველი კომენტარი