منسوخشدهها¶
در انتظار حذف در پایتون 3.16¶
در انتظار حذف در پایتون 3.17¶
datetime:
collections.abc:
collections.abc.ByteString برای حذف در پایتون 3.17 برنامهریزی شده است.
از isinstance(obj, collections.abc.Buffer) استفاده کنید تا در زمان اجرا بررسی کنید که آیا obj پروتکل بافر را پیادهسازی میکند. برای استفاده در حاشیهنویسی نوع، یا از Buffer استفاده کنید یا از یک اجتماع (union) که بهطور صریح نوعهایی را که کد شما از آنها پشتیبانی میکند مشخص میکند (مثلاً bytes | bytearray | memoryview).
ByteString در اصل قرار بود یک کلاس انتزاعی باشد که بهعنوان ابرنوعی برای هر دو bytes و bytearray عمل کند. با این حال، از آنجا که این کلاس پایه انتزاعی هرگز هیچ متدی نداشت، دانستن اینکه شیءای نمونهای از ByteString است، هرگز در واقع هیچ چیز مفیدی دربارهی آن شیء به شما نمیگفت. سایر نوعهای رایج بافر مانند memoryview نیز هرگز بهعنوان زیرنوعهایی از ByteString شناخته نمیشدند (نه در رانتایم و نه توسط بررسیگرهای نوع ایستا).
برای جزئیات بیشتر به PEP 688 مراجعه کنید. (مشارکتشده توسط Shantanu Jain در gh-91896.)
encodings:
profile:
webbrowser:
typing:
پیش از پایتون 3.14، اجتماعهای سبک قدیمی (old-style unions) با استفاده از کلاس خصوصی typing._UnionGenericAlias پیادهسازی میشدند. این کلاس دیگر برای پیادهسازی لازم نیست، اما برای سازگاری با نسخههای پیشین حفظ شده است و حذف آن برای پایتون 3.17 برنامهریزی شده است. کاربران باید بهجای اتکا به جزئیات پیادهسازی خصوصی، از ابزارهای کمکی دروننگری مستند مانند typing.get_origin() و typing.get_args() استفاده کنند.
typing.ByteString که از پایتون 3.9 منسوخ شده است، برای حذف در پایتون 3.17 برنامهریزی شده است.
از isinstance(obj, collections.abc.Buffer) استفاده کنید تا در زمان اجرا بررسی کنید که آیا obj پروتکل بافر را پیادهسازی میکند. برای استفاده در حاشیهنویسی نوع، یا از Buffer استفاده کنید یا از یک اجتماع (union) که بهطور صریح نوعهایی را که کد شما از آنها پشتیبانی میکند مشخص میکند (مثلاً bytes | bytearray | memoryview).
ByteString در اصل قرار بود یک کلاس انتزاعی باشد که بهعنوان ابرنوعی برای هر دو bytes و bytearray عمل کند. با این حال، از آنجا که این کلاس پایه انتزاعی هرگز هیچ متدی نداشت، دانستن اینکه شیءای نمونهای از ByteString است، هرگز در واقع هیچ چیز مفیدی دربارهی آن شیء به شما نمیگفت. سایر نوعهای رایج بافر مانند memoryview نیز هرگز بهعنوان زیرنوعهایی از ByteString شناخته نمیشدند (نه در رانتایم و نه توسط بررسیگرهای نوع ایستا).
برای جزئیات بیشتر به PEP 688 مراجعه کنید. (مشارکتشده توسط Shantanu Jain در gh-91896.)
tkinter:
در انتظار حذف در پایتون 3.18¶
هنگامی که انتظار یک توصیفگر پرونده میرود، دیگر یک مقدار بولی پذیرفته نمیشود. (مشارکتی از Serhiy Storchaka در gh-82626.)
decimal:
موارد منسوخ تعریفشده توسط PEP 829:
(تهیهشده توسط Barry Warsaw در gh-148641.)
در انتظار حذف در پایتون 3.19¶
ctypes:
hashlib:
در سازندههای توابع هش مانند new() یا سازندههای مستقیم با نام هش مانند md5() و sha256()، در پیادهسازیهای مختلف hashlib میتوانید پارامتر دادهی اولیه اختیاری را به صورت آرگومان کلیدواژهای با نام data= یا string= نیز ارسال کنید.
پشتیبانی از نام آرگومان کلیدواژهای string اکنون منسوخ شده است و در پایتون ۳.۱۹ حذف خواهد شد.
پیش از نسخهی ۳.۱۳ پایتون، پارامتر کلیدواژهای string بسته به پیادهسازی بکاند توابع هش بهدرستی پشتیبانی نمیشد. برای حداکثر سازگاری با نسخههای قبلی، ترجیح دهید دادهی اولیه را به عنوان یک آرگومان جایگاهی ارسال کنید.
http.cookies:
imaplib:
تغییر دادن IMAP4.file اکنون منسوخ شده است و برای حذف در نسخهی ۳.۱۹ پایتون در نظر گرفته شده است. این ویژگی اکنون استفاده نمیشود و تغییر دادن مقدار آن پروندهی جاری را بهطور خودکار نمیبندد.
پیش از نسخهی ۳.۱۴ پایتون، از این ویژگی برای پیادهسازی متدهای متناظر read() و readline() برای IMAP4 استفاده میشد اما از آن زمان به بعد دیگر اینطور نیست.
در نسخهی ۳.۲۰ پایتون حذف خواهد شد¶
فراخوانی متد __new__() از struct.Struct بدون آرگومان format منسوخ شده است و در نسخهی ۳.۲۰ پایتون حذف خواهد شد. فراخوانی متد __init__() روی اشیاء مقداردهیشدهی Struct منسوخ شده است و در نسخهی ۳.۲۰ پایتون حذف خواهد شد.
(مشارکتکرده توسط Sergey B Kirpichev و Serhiy Storchaka در gh-143715.)
ویژگیهای __version__، version و VERSION در این ماژولهای کتابخانهی استاندارد منسوخ شدهاند و در نسخهی ۳.۲۰ پایتون حذف خواهند شد. بهجای آنها از sys.version_info استفاده کنید.
(تهیهشده توسط Hugo van Kemenade و Stan Ulbrych در gh-76007.)
موارد منسوخ تعریفشده توسط PEP 829:
(تهیهشده توسط Barry Warsaw در gh-148641.)
ast:
typing:
فراخوانی بررسیهای isinstance() و issubclass() روی کلاسهای پروتکلی که صراحتاً با runtime_checkable() تزئین نشدهاند اما از یک کلاس پروتکل با قابلیت بررسی در زمان اجرا (runtime-checkable) ارثبری میکنند، منسوخ شده است. این کار در نسخهی ۳.۲۰ پایتون یک خطای TypeError ایجاد خواهد کرد.
(تهیهشده توسط Bartosz Sławecki در gh-132604.)
در انتظار حذف در نسخههای آینده¶
APIهای زیر در آینده حذف خواهند شد، اگرچه در حال حاضر تاریخی برای حذف آنها برنامهریزی نشده است.
argparse:
تودرتو کردن گروههای آرگومان و تودرتو کردن گروههای انحصاری متقابل منسوخ شدهاند.
گذراندن آرگومان کلیدواژهای مستندنشدهی prefix_chars به add_argument_group() اکنون منسوخ شده است.
مبدل نوع argparse.FileType منسوخ شده است.
builtins:
تولیدگرها: امضای throw(type, exc, tb) و athrow(type, exc, tb) منسوخ شده است؛ به جای آن از throw(exc) و athrow(exc) استفاده کنید — امضای تکآرگومانی.
در حال حاضر پایتون مقادیر لفظی عددی را میپذیرد که بلافاصله کلیدواژهای پس از آنها میآید، برای مثال 0in x، 1or x، 0if 1else 2. این اجازه میدهد عبارتهای گیجکننده و مبهمی مانند [0x1for x in y] نوشته شوند (که میتوان آن را به صورت [0x1 for x in y] یا [0x1f or x in y] تفسیر کرد). اگر مقدار لفظی عددی بلافاصله با یکی از کلیدواژههای and، else، for، if، in، is و or دنبال شود، یک هشدار سینتکس اکسپورت میشود. در یک نسخهی آینده این مورد به یک خطای سینتکس تبدیل خواهد شد. (gh-87999)
پشتیبانی از بازگرداندن نوعی غیر از int توسط متدهای __index__() و __int__(): این متدها ملزم خواهند شد که نمونهای از یک زیرکلاس محضِ int را بازگردانند.
پشتیبانی از متد __float__() که زیرکلاس اکیدی از float را برمیگرداند: این متدها ملزم خواهند شد که نمونهای از float را بازگردانند.
پشتیبانی از متد __complex__() که زیرکلاس اکیدِ complex را برمیگرداند: این متدها ملزم خواهند شد که نمونهای از complex را برگردانند.
گذراندن یک عدد مختلط بهعنوان آرگومان real یا imag در سازندهی complex() اکنون منسوخ شده است؛ این عدد باید فقط بهصورت یک آرگومان جایگاهی واحد ارسال شود. (مشارکت Serhiy Storchaka در gh-109218.)
calendar: ثابتهای calendar.January و calendar.February منسوخ شدهاند و با calendar.JANUARY و calendar.FEBRUARY جایگزین شدهاند. (مشارکتشده توسط Prince Roshan در gh-103636.)
codecs: بهجای codecs.open() از open() استفاده کنید. (gh-133038)
codeobject.co_lnotab: بهجای آن از متد codeobject.co_lines() استفاده کنید.
datetime:
utcnow(): از datetime.datetime.now(tz=datetime.UTC) استفاده کنید.
utcfromtimestamp(): از datetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC) استفاده کنید.
gettext: مقدار جمع باید یک عدد صحیح باشد.
importlib:
importlib.metadata:
logging: متد warn() از پایتون 3.3 به بعد منسوخ شده است؛ به جای آن از warning() استفاده کنید.
mailbox: استفاده از ورودی StringIO و حالت متنی منسوخ شده است؛ بهجای آن از BytesIO و حالت دودویی استفاده کنید.
os: فراخوانی os.register_at_fork() در یک فرایند چندنخی.
os.path: تابع os.path.commonprefix() منسوخ شده است؛ برای پیشوندهای مسیر از os.path.commonpath() استفاده کنید. تابع os.path.commonprefix() به دلیل داشتن نام و ماژول گمراهکننده در حال منسوخ شدن است. این تابع با وجود اینکه در ماژولی مربوط به دستکاری مسیر قرار دارد، برای استفاده با پیشوندهای مسیر ایمن نیست؛ یعنی با استفاده از این تابع میتوان بهطور تصادفی آسیبپذیریهای پیمایش مسیر را وارد برنامههای پایتون کرد.
pydoc.ErrorDuringImport: مقدار تاپل برای پارامتر exc_info منسوخ شده است؛ از یک نمونه استثنا استفاده کنید.
re: اکنون قواعد سختگیرانهتری برای ارجاعهای عددی گروه و نام گروهها در عبارتهای باقاعده اعمال میشود. اکنون فقط دنبالهای از ارقام اسکی بهعنوان ارجاع عددی پذیرفته میشود. نام گروه در الگوهای بایتی و رشتههای جایگزین اکنون فقط میتواند شامل حروف و ارقام اسکی و زیرخط باشد. (مشارکتشده توسط Serhiy Storchaka در gh-91760.)
shutil: پارامتر onerror در rmtree() در پایتون 3.12 منسوخ شده است؛ بهجای آن از پارامتر onexc استفاده کنید.
گزینهها و پروتکلهای ssl:
متدهای threading:
typing.Text (gh-92332).
کلاس داخلی typing._UnionGenericAlias دیگر برای پیادهسازی typing.Union استفاده نمیشود. برای حفظ سازگاری با کاربرانی که از این کلاس خصوصی استفاده میکنند، یک لایهی سازگاری (shim) تا دستکم Python 3.17 ارائه خواهد شد. (مشارکتشده توسط Jelle Zijlstra در gh-105499.)
unittest.IsolatedAsyncioTestCase: برگرداندن مقداری غیر از None از یک مورد آزمون منسوخ شده است.
توابع منسوخ urllib.parse: بهجای آنها urlparse()
splitattr()
splithost()
splitnport()
splitpasswd()
splitport()
splitquery()
splittag()
splittype()
splituser()
splitvalue()
to_bytes()
wsgiref: SimpleHandler.stdout.write() نباید نوشتن جزئی (partial write) انجام دهد.
xml.etree.ElementTree: آزمودن مقدار درستی یک Element منسوخ شده است. در نسخهای در آینده، همیشه True بازگردانده خواهد شد. به جای آن، آزمونهای صریح len(elem) یا elem is not None را ترجیح دهید.
sys._clear_type_cache() منسوخ شده است: به جای آن از sys._clear_internal_caches() استفاده کنید.
منسوخسازیهای نرم¶
هیچ برنامهای برای حذف مشتراکناپذیر APIها وجود ندارد.
re.match() و re.Pattern.match() اکنون به نفع APIهای جدید re.prefixmatch() و re.Pattern.prefixmatch() که به عنوان نامهای جایگزین و صریحتر اضافه شدهاند، مشتراکناپذیر میشوند. این تغییرات به این منظور در نظر گرفته شدهاند تا با پیروی از شعار ذن پایتون یعنی «صریح بودن بهتر از ضمنی بودن است»، سردرگمیها پیرامون معنای match را کاهش دهند. بیشتر کتابخانههای عبارت باقاعده در زبانهای دیگر از APIای به نام match استفاده میکنند که منظور پایتون از آن چیزی است که همیشه search نامیده است.
ما هیچ برنامهای برای حذف نام قدیمیتر match() نداریم، زیرا این نام بیش از ۳۰ سال است که در کدها استفاده میشود. کدهایی که از نسخههای قدیمیتر پایتون پشتیبانی میکنند باید همچنان از match() استفاده کنند، در حالی که کدهای جدید باید prefixmatch() را ترجیح دهند. توابع prefixmatch() در برابر match() را ببینید.
(مشارکتکرده توسط Gregory P. Smith در gh-86519 و Hugo van Kemenade در gh-148100.)
استفاده از کدهای نوع فرمت 'F' و 'D' در ماژول struct اکنون به نفع فرمهای دوحرفی 'Zf' و 'Zd' مشتراکناپذیر شدهاند. (مشارکتکرده توسط Sergey B Kirpichev در gh-121249.)
منسوخشدههای C API¶
در انتظار حذف در پایتون 3.15¶
PyImport_ImportModuleNoBlock(): بهجای آن از PyImport_ImportModule() استفاده کنید.
PyWeakref_GetObject() و PyWeakref_GET_OBJECT(): بهجای آن از PyWeakref_GetRef() استفاده کنید. پروژهی pythoncapi-compat project را میتوان برای دریافت PyWeakref_GetRef() روی پایتون ۳.۱۲ و نسخههای قدیمیتر استفاده کرد.
PyUnicode_AsDecodedObject(): به جای آن از PyCodec_Decode() استفاده کنید.
PyUnicode_AsDecodedUnicode(): بهجای آن از PyCodec_Decode() استفاده کنید؛ توجه داشته باشید که برخی کدکها (برای مثال، "base64") ممکن است نوعی غیر از str مانند bytes برگردانند.
PyUnicode_AsEncodedObject(): بهجای آن از PyCodec_Encode() استفاده کنید.
PyUnicode_AsEncodedUnicode(): بهجای آن از PyCodec_Encode() استفاده کنید؛ توجه داشته باشید که برخی کدکها (برای مثال، "base64") ممکن است نوعی غیر از bytes، مانند str برگردانند.
توابع مقداردهی اولیه پایتون، منسوخشده در پایتون 3.13:
میتوان از پروژهی pythoncapi-compat برای به دست آوردن PyConfig_Get() در پایتون 3.13 و نسخههای قدیمیتر استفاده کرد.
توابعی برای پیکربندی راهاندازی پایتون، که در پایتون 3.11 منسوخ شدهاند:
بهجای آن، باید از API Py_InitializeFromConfig() به همراه PyConfig استفاده شود.
متغیرهای پیکربندی سراسری:
برای تنظیم این گزینهها باید از API Py_InitializeFromConfig() به همراه PyConfig استفاده شود. یا میتوان از PyConfig_Get() برای دریافت این گزینهها در زمان اجرا استفاده کرد.
در انتظار حذف در پایتون 3.16¶
در انتظار حذف در پایتون 3.18¶
توابع خصوصی زیر منسوخ شدهاند و حذف آنها در پایتون 3.18 برنامهریزی شده است:
_PyBytes_Join(): از PyBytes_Join() استفاده کنید.
_PyDict_GetItemStringWithError(): از PyDict_GetItemStringRef() استفاده کنید.
_PyDict_Pop(): از PyDict_Pop() استفاده کنید.
_PyLong_Sign(): از PyLong_GetSign() استفاده کنید.
_PyLong_FromDigits() و _PyLong_New(): از PyLongWriter_Create() استفاده کنید.
_PyThreadState_UncheckedGet(): از PyThreadState_GetUnchecked() استفاده کنید.
_PyUnicode_AsString(): از PyUnicode_AsUTF8() استفاده کنید.
_PyUnicodeWriter_Init(): _PyUnicodeWriter_Init(&writer) را با writer = PyUnicodeWriter_Create(0) جایگزین کنید.
_PyUnicodeWriter_Finish(): عبارت _PyUnicodeWriter_Finish(&writer) را با PyUnicodeWriter_Finish(writer) جایگزین کنید.
_PyUnicodeWriter_Dealloc(): _PyUnicodeWriter_Dealloc(&writer) را با PyUnicodeWriter_Discard(writer) جایگزین کنید.
_PyUnicodeWriter_WriteChar(): _PyUnicodeWriter_WriteChar(&writer, ch) را با PyUnicodeWriter_WriteChar(writer, ch) جایگزین کنید.
_PyUnicodeWriter_WriteStr(): _PyUnicodeWriter_WriteStr(&writer, str) را با PyUnicodeWriter_WriteStr(writer, str) جایگزین کنید.
_PyUnicodeWriter_WriteSubstring(): عبارت _PyUnicodeWriter_WriteSubstring(&writer, str, start, end) را با PyUnicodeWriter_WriteSubstring(writer, str, start, end) جایگزین کنید.
_PyUnicodeWriter_WriteASCIIString(): _PyUnicodeWriter_WriteASCIIString(&writer, str) را با PyUnicodeWriter_WriteASCII(writer, str) جایگزین کنید.
_PyUnicodeWriter_WriteLatin1String(): _PyUnicodeWriter_WriteLatin1String(&writer, str) را با PyUnicodeWriter_WriteUTF8(writer, str) جایگزین کنید.
_PyUnicodeWriter_Prepare(): (بدون جایگزین).
_PyUnicodeWriter_PrepareKind(): (بدون جایگزین).
_Py_HashPointer(): از Py_HashPointer() استفاده کنید.
_Py_fopen_obj(): از Py_fopen() استفاده کنید.
میتوان از پروژهی pythoncapi-compat برای به دست آوردن این توابع عمومی جدید در پایتون 3.13 و نسخههای قدیمیتر استفاده کرد. (مشارکتشده توسط Victor Stinner در gh-128863.)
در انتظار حذف در پایتون 3.19¶
در نسخهی ۳.۲۰ پایتون حذف خواهد شد¶
در انتظار حذف در نسخههای آینده¶
APIهای زیر منسوخ شدهاند و حذف خواهند شد، اگرچه در حال حاضر هیچ تاریخی برای حذف آنها تعیین نشده است.
©
حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرمافزار پایتون نسخه ۲ منتشر شده است.
مثالها، دستورالعملها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شدهاند.
برای اطلاعات بیشتر به
تاریخچه و مجوز مراجعه کنید.
بنیاد نرمافزار پایتون یک شرکت غیرانتفاعی است.
لطفاً کمک مالی کنید.
آخرین بهروزرسانی در نوامبر 12, 2026 (06:19 UTC).
آیا
اشکالی یافتید؟
ساخته شده با
Sphinx 9.1.0.