GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing python.github.io — تازههای پایتون 3.9 تازههای پایتون 3.9¶
این مقاله ویژگیهای جدید پایتون 3.9 را در مقایسه با 3.8 توضیح میدهد. پایتون 3.9 در ۵ اکتبر ۲۰۲۰ منتشر شد. برای جزئیات کامل، فهرست تغییرات را ببینید. همچنین ببینید PEP 596 - زمانبندی انتشار پایتون 3.9 خلاصه -- نکات برجستهی انتشار¶ویژگیهای جدید سینتکس:
قابلیتهای جدید توکار:
ویژگیهای جدید در کتابخانه استاندارد:
بهبودهای مفسر:
ماژولهای جدید کتابخانه:
تغییرات فرایند انتشار:
شما باید در کد خودتان وجود DeprecationWarning را بررسی کنید¶وقتی پایتون 2.7 هنوز پشتیبانی میشد، بسیاری از قابلیتهای پایتون 3 برای سازگاری به عقب با پایتون 2.7 نگه داشته میشدند. با پایان پشتیبانی از پایتون 2، این لایههای سازگاری به عقب حذف شدهاند یا بهزودی حذف خواهند شد. بیشترِ آنها طی چند سال هشدار برنامهی خود را با گزینهی خط فرمان پایتون 3.9 آخرین نسخهای است که این لایههای سازگاری با پایتون 2 را فراهم میکند تا نگهدارندگان پروژههای پایتون زمان بیشتری برای سازماندهی حذف پشتیبانی از پایتون 2 و افزودن پشتیبانی از پایتون 3.9 داشته باشند. نامهای مستعاری که در ماژول بهطور کلیتر، سعی کنید آزمونهای خود را در حالت توسعه پایتون اجرا کنید؛ این حالت به آمادهسازی کد شما کمک میکند تا با نسخه بعدی پایتون سازگار باشد. یادداشت: تعدادی از موارد پیشتر منسوخشده نیز در این نسخه از پایتون حذف شدهاند. به بخش حذفشده مراجعه کنید. قابلیتهای جدید¶عملگرهای ادغام و بهروزرسانی دیکشنری¶عملگرهای ادغام ( مثال: >>> x = {"key1": "value1 from x", "key2": "value2 from x"} >>> y = {"key2": "value2 from y", "key3": "value3 from y"} >>> x | y {'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'} >>> y | x {'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'} برای توضیح کامل به PEP 584 مراجعه کنید. (مشارکت از Brandt Bucher در bpo-36144.) متدهای جدید رشته برای حذف پیشوندها و پسوندها¶
نوعهای عام برای راهنمایی نوع در مجموعههای استاندارد¶در حاشیهنویسیهای نوع اکنون میتوانید از نوعهای مجموعهای توکار مانند مثال: def greet_all(names: list[str]) -> None: for name in names: print("Hello", name) برای جزئیات بیشتر به PEP 585 مراجعه کنید. (مشارکتشده توسط گیدو ونروسوم، ایتن اسمیت و باتوهان تاشکایا در bpo-39481.) پارسر جدید¶پایتون 3.9 از یک پارسر جدید استفاده میکند که بهجای LL(1) مبتنی بر PEG است. کارایی پارسر جدید تقریباً با کارایی پارسر قدیمی برابری میکند، اما هنگام طراحی قابلیتهای جدید زبان، صورتگرایی PEG انعطافپذیرتر از LL(1) است. استفاده از این انعطافپذیری را از پایتون 3.10 به بعد آغاز خواهیم کرد. ماژول در پایتون 3.10، پارسر قدیمی حذف خواهد شد و تمام قابلیتهایی که به آن وابستهاند نیز حذف خواهند شد (عمدتاً ماژول برای جزئیات بیشتر به PEP 617 مراجعه کنید. (مشارکتشده توسط Guido van Rossum، Pablo Galindo و Lysandros Nikolaou در bpo-40334.) سایر تغییرات زبان¶
ماژولهای جدید¶zoneinfo¶ماژول مثال: >>> from zoneinfo import ZoneInfo >>> import datetime as dt >>> # Daylight saving time >>> when = dt.datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles")) >>> print(when) 2020-10-31 12:00:00-07:00 >>> when.tzname() 'PDT' >>> # Standard time >>> when += dt.timedelta(days=7) >>> print(when) 2020-11-07 12:00:00-08:00 >>> print(when.tzname()) PST بهعنوان منبع جایگزین دادهها برای پلتفرمهایی که پایگاه دادهی IANA را ارائه نمیکنند، ماژول tzdata بهصورت یک بستهی طرف اول (first-party) منتشر شد — بستهای که از طریق PyPI توزیع میشود و توسط تیم اصلی سیپایتون نگهداری میشود. همچنین ببینید
graphlib¶ماژول جدیدی به نام ماژولهای بهبودیافته¶ast¶گزینهی indent به تابع به گرههای AST رشتههای مستندی اضافه شد که امضای ASDL مورد استفاده برای ساخت آن گره را شامل میشوند. (نوشتهشده توسط Batuhan Taskaya در bpo-39638.) asyncio¶به دلیل نگرانیهای امنیتی جدی، پارامتر reuse_address در یک همروال جدید به نام
یک همروال جدید به نام هنگام لغو وظیفه به دلیل اتمام مهلت زمانی،
compileall¶امکان جدیدی اضافه شد تا از پیوندهای سخت برای پروندههای گزینههای جدیدی برای دستکاری مسیر در پروندههای concurrent.futures¶پارامتر جدید cancel_futures به نخهای دِیمِن از کارگرهای curses¶توابع datetime¶متدهای distutils¶فرمان upload اکنون چکیدههای هش SHA2-256 و Blake2b-256 را ایجاد میکند. در پلتفرمهایی که چکیده MD5 را مسدود میکنند، از MD5 صرفنظر میکند. (مشارکتشده توسط Christian Heimes در bpo-40698.) fcntl¶ثابتهای ftplib¶
gc¶وقتی زبالهروب جمعآوریای انجام میدهد که در آن برخی اشیاء باززنده میشوند (پس از اجرای نهاییسازها، از بیرون چرخههای ایزوله قابل دسترساند)، جمعآوری تمام اشیایی که همچنان غیرقابل دسترساند را مسدود نمیکند. (با مشارکت Pablo Galindo و Tim Peters در bpo-38379.) تابع جدید hashlib¶ماژول اکنون میتوان ماژولهای هش توکار را با http¶کدهای وضعیت HTTP IDLE و idlelib¶گزینهای برای خاموش کردن چشمکزدن مکاننما اضافه شد. (با مشارکت Zackery Spytz در bpo-4603.) کلید Escape اکنون پنجرههای تکمیل IDLE را میبندد. (مشارکت از سوی Johnny Najera در bpo-38944.) کلیدواژهها به فهرست تکمیل نام ماژول افزوده شدند. (مشارکتشده توسط Terry J. Reedy در bpo-37765.) جدید در نسخههای نگهداری 3.9 IDLE اکنون تغییرات فوق به نسخههای نگهداری 3.8 بکپورت شدهاند. پنجره تنظیمات بازآرایی شد. زبانه General به زبانههای Windows و Shell/Ed تقسیم شد. منابع راهنما که منوی Help را گسترش میدهند، به زبانه Extensions منتقل شدند. برای گزینههای جدید فضا ایجاد شد و پنجره کوتاهتر شد. دومی باعث میشود پنجره تنظیمات با صفحههای نمایش کوچک بهتر متناسب شود. (مشارکت Terry Jan Reedy در bpo-40468.) تنظیم فضای تورفتگی از زبانه Font به زبانه جدید Windows منتقل شد. (مشارکت Mark Roseman و Terry Jan Reedy در bpo-33962.) اعمال برجستهسازی نحوی بر پروندههای imaplib¶کلاسهای
importlib¶برای بهبود سازگاری با دستورهای ایمپورت، بارگذارهای ایمپورت که اشیاء ماژول تغییرناپذیر منتشر میکنند، اکنون میتوانند علاوه بر ماژولهای منفرد، بستههای تغییرناپذیر نیز منتشر کنند. (با مشارکت Dino Viehland در bpo-39336.) تابع
inspect¶
ipaddress¶
نشانیهای IPv6 دارای محدوده را میتوان با استفاده از از پایتون 3.9.5 به بعد، ماژول math¶تابع
تابع تابع چندپردازشی (multiprocessing)¶کلاس nntplib¶
os¶
قابلیتهای مخصوص لینوکس تابع توابع تابع pathlib¶متد pdb¶اکنون در ویندوز poplib¶
pprint¶
pydoc¶رشته مستند اکنون نهتنها برای کلاس، تابع، متد و غیره، بلکه برای هر شیءای که ویژگی random¶متد جدید signal¶تابع مخصوص لینوکس smtplib¶
سازندهی socket¶ماژول ماژول socket اکنون پروتکل ماژول socket اکنون دارای توابع time¶در AIX، sys¶ویژگی جدید پیشتر، tracemalloc¶تابع typing¶PEP 593 نوع unicodedata¶پایگاه داده یونیکد به نسخهی 13.0.0 بهروزرسانی شده است. (bpo-39926). venv¶اسکریپتهای فعالسازی ارائهشده توسط xml¶نویسههای فضای سفید درون ویژگیها اکنون هنگام سریالسازی بهینهسازیها¶
در ادامه، خلاصهای از بهبودهای عملکرد از پایتون 3.4 تا پایتون 3.9 آمده است: Python version 3.4 3.5 3.6 3.7 3.8 3.9
-------------- --- --- --- --- --- ---
Variable and attribute read access:
read_local 7.1 7.1 5.4 5.1 3.9 3.9
read_nonlocal 7.1 8.1 5.8 5.4 4.4 4.5
read_global 15.5 19.0 14.3 13.6 7.6 7.8
read_builtin 21.1 21.6 18.5 19.0 7.5 7.8
read_classvar_from_class 25.6 26.5 20.7 19.5 18.4 17.9
read_classvar_from_instance 22.8 23.5 18.8 17.1 16.4 16.9
read_instancevar 32.4 33.1 28.0 26.3 25.4 25.3
read_instancevar_slots 27.8 31.3 20.8 20.8 20.2 20.5
read_namedtuple 73.8 57.5 45.0 46.8 18.4 18.7
read_boundmethod 37.6 37.9 29.6 26.9 27.7 41.1
Variable and attribute write access:
write_local 8.7 9.3 5.5 5.3 4.3 4.3
write_nonlocal 10.5 11.1 5.6 5.5 4.7 4.8
write_global 19.7 21.2 18.0 18.0 15.8 16.7
write_classvar 92.9 96.0 104.6 102.1 39.2 39.8
write_instancevar 44.6 45.8 40.0 38.9 35.5 37.4
write_instancevar_slots 35.6 36.1 27.3 26.6 25.7 25.8
Data structure read access:
read_list 24.2 24.5 20.8 20.8 19.0 19.5
read_deque 24.7 25.5 20.2 20.6 19.8 20.2
read_dict 24.3 25.7 22.3 23.0 21.0 22.4
read_strdict 22.6 24.3 19.5 21.2 18.9 21.5
Data structure write access:
write_list 27.1 28.5 22.5 21.6 20.0 20.0
write_deque 28.7 30.1 22.7 21.8 23.5 21.7
write_dict 31.4 33.3 29.3 29.2 24.7 25.4
write_strdict 28.4 29.9 27.5 25.2 23.1 24.5
Stack (or queue) operations:
list_append_pop 93.4 112.7 75.4 74.2 50.8 50.6
deque_append_pop 43.5 57.0 49.4 49.2 42.5 44.2
deque_append_popleft 43.7 57.3 49.7 49.7 42.8 46.4
Timing loop:
loop_overhead 0.5 0.6 0.4 0.3 0.3 0.3
این نتایج از اسکریپت بنچمارک دسترسی به متغیر موجود در منسوخ¶
حذفشده¶
انتقال به پایتون 3.9¶این بخش، تغییراتی که پیشتر شرح دادهشدهاند و سایر رفع اشکالهایی را که ممکن است مستلزم تغییراتی در کد شما باشند، فهرست میکند. تغییرات در API پایتون¶
تغییرات در API زبان C¶
تغییرات بایتکد سیپایتون¶
تغییرات ساخت¶
تغییرات C API¶قابلیتهای جدید¶
انتقال به پایتون 3.9¶
حذفشده¶
تغییرات قابلتوجه در پایتون 3.9.1¶typing¶رفتار
(مشارکتشده توسط Yurii Karabas در bpo-42345.) پشتیبانی از macOS 11.0 (Big Sur) و مکهای Apple Silicon¶از نسخهی 3.9.1 به بعد، پایتون اکنون بهطور کامل از ساخت و اجرا روی macOS 11.0 (Big Sur) و روی مکهای Apple Silicon (مبتنی بر معماری (مشارکتشده توسط رونالد اوسورن و لارنس دآنا در bpo-41100.) تغییرات قابل توجه در پایتون 3.9.2¶collections.abc¶نوع عام urllib.parse¶نسخههای پیشین پایتون اجازه میدادند که هم از تغییرات قابلتوجه در پایتون 3.9.3¶یک اصلاح امنیتی رفتار تغییرات قابل توجه در پایتون 3.9.5¶urllib.parse¶وجود نویسههای سطر جدید یا تب در بخشهایی از یک URL، امکان برخی انواع حملات را فراهم میکند. مطابق با مشخصات WHATWG که RFC 3986 را بهروزرسانی میکند، نویسههای اسکی سطر جدید قابلیت امنیتی قابل توجه در 3.9.14¶اکنون تبدیل بین تغییرات قابل توجه در 3.9.17¶tarfile¶
© حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرمافزار پایتون نسخه ۲ منتشر شده است. مثالها، دستورالعملها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شدهاند. برای اطلاعات بیشتر به تاریخچه و مجوز مراجعه کنید. بنیاد نرمافزار پایتون یک شرکت غیرانتفاعی است. لطفاً کمک مالی کنید. آخرین بهروزرسانی در نوامبر 12, 2026 (06:19 UTC). آیا اشکالی یافتید؟ ساخته شده با Sphinx 9.1.0. |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |