در انتظار حذف در پایتون 3.17¶
-
collections.abc.ByteStringقرار است در Python 3.17 حذف شود.برای آزمودن اینکه آیا
objپروتکل بافر را در زمان اجرا پیادهسازی میکند، ازisinstance(obj, collections.abc.Buffer)استفاده کنید. برای استفاده در حاشیهنویسیهای نوع، یا ازBufferاستفاده کنید یا از یک اجتماع (union) که بهطور صریح انواعی را که کد شما از آنها پشتیبانی میکند مشخص میکند (مثلاًbytes | bytearray | memoryview).ByteStringدر اصل قرار بود کلاسی انتزاعی باشد که بهعنوان ابرنوع (supertype) برای هر دوbytesوbytearrayعمل کند. با این حال، از آنجا که این کلاس پایه انتزاعی هرگز هیچ متدی نداشت، دانستن اینکه شیئی نمونهای ازByteStringاست، هرگز در واقع هیچ چیز مفیدی دربارهی آن شیء به شما نمیگفت. سایر نوعهای بافر رایج مانندmemoryviewنیز هرگز بهعنوان زیرنوعهایی ازByteStringدر نظر گرفته نمیشدند (نه در زمان اجرا و نه توسط بررسیگرهای نوع ایستا).برای جزئیات بیشتر به PEP 688 مراجعه کنید. (مشارکتشده توسط شانتانو جین در gh-91896.)
-
پیش از پایتون 3.14، یونیونهای سبک قدیمی (old-style unions) با استفاده از کلاس خصوصی
typing._UnionGenericAliasپیادهسازی میشدند. این کلاس دیگر برای پیادهسازی مورد نیاز نیست، اما برای سازگاری با نسخههای قبلی حفظ شده است و حذف آن برای پایتون 3.17 برنامهریزی شده است. کاربران باید بهجای تکیه بر جزئیات پیادهسازی خصوصی، از ابزارهای کمکی مستند دروننگری مانندtyping.get_origin()وtyping.get_args()استفاده کنند.typing.ByteStringکه از پایتون 3.9 منسوخ شده است، برای حذف در پایتون 3.17 برنامهریزی شده است.برای آزمودن اینکه آیا
objپروتکل بافر را در زمان اجرا پیادهسازی میکند، ازisinstance(obj, collections.abc.Buffer)استفاده کنید. برای استفاده در حاشیهنویسیهای نوع، یا ازBufferاستفاده کنید یا از یک اجتماع (union) که بهطور صریح انواعی را که کد شما از آنها پشتیبانی میکند مشخص میکند (مثلاًbytes | bytearray | memoryview).ByteStringدر اصل قرار بود کلاسی انتزاعی باشد که بهعنوان ابرنوع (supertype) برای هر دوbytesوbytearrayعمل کند. با این حال، از آنجا که این کلاس پایه انتزاعی هرگز هیچ متدی نداشت، دانستن اینکه شیئی نمونهای ازByteStringاست، هرگز در واقع هیچ چیز مفیدی دربارهی آن شیء به شما نمیگفت. سایر نوعهای بافر رایج مانندmemoryviewنیز هرگز بهعنوان زیرنوعهایی ازByteStringدر نظر گرفته نمیشدند (نه در زمان اجرا و نه توسط بررسیگرهای نوع ایستا).برای جزئیات بیشتر به PEP 688 مراجعه کنید. (مشارکتشده توسط شانتانو جین در gh-91896.)