Python 3.8 پروگرامنگ لینگویج کی ریلیز

ڈیڑھ سال کی ترقی کے بعد پیش کیا اہم پروگرامنگ زبان کی رہائی ازگر 3.8. ازگر 3.8 برانچ کے لیے اصلاحی اپ ڈیٹس منصوبہ بند ہے 18 ماہ کے اندر رہائی۔ اکتوبر 5 تک 2024 سال کے لیے اہم کمزوریاں طے کی جائیں گی۔ 3.8 برانچ کے لیے اصلاحی اپ ڈیٹس ہر دو ماہ بعد جاری کیے جائیں گے، Python 3.8.1 کی پہلی اصلاحی ریلیز دسمبر میں شیڈول ہے۔

شامل کرنے والوں میں بدعات:

  • معاونت پیچیدہ اظہار کے اندر اسائنمنٹ آپریشنز۔ نئے ":=" آپریٹر کے ساتھ، دوسرے ایکسپریشنز کے اندر ویلیو اسائنمنٹ آپریشنز کرنا ممکن ہے، مثال کے طور پر، مشروط بیانات میں ڈبل فنکشن کالز سے بچنے کے لیے اور لوپس کی وضاحت کرتے وقت:

    اگر (n := len(a)) > 10:
    ...

    جبکہ (block := f.read(256)) !=":
    ...

  • معاونت فنکشن دلائل کی وضاحت کے لیے نیا نحو۔ فنکشن ڈیفینیشن کے دوران آرگیومینٹس کی گنتی کرتے وقت، اب آپ الگ الگ آرگیومینٹس کے لیے ایک "/" کی وضاحت کر سکتے ہیں جو صرف اس ترتیب کی بنیاد پر ویلیوز تفویض کی جا سکتی ہیں جس میں فنکشن کال کے دوران ویلیوز کو شمار کیا جاتا ہے، ان دلائل سے جو تفویض کیے جا سکتے ہیں۔ کسی بھی ترتیب میں (variable=value syntax))۔ عملی طور پر، نئی خصوصیت Python میں موجود فنکشنز کو C میں موجود فنکشنز کے رویے کو مکمل طور پر نقل کرنے کی اجازت دیتی ہے، اور مخصوص ناموں کے پابند ہونے سے بھی بچنے کے لیے، مثال کے طور پر، اگر پیرامیٹر کا نام مستقبل میں تبدیل کرنے کا منصوبہ ہے۔

    "/" جھنڈا پہلے شامل کیے گئے "*" جھنڈے کی تکمیل کرتا ہے، متغیرات کو الگ کرتا ہے جس کے لیے صرف "variable=value" کی شکل میں ایک اسائنمنٹ لاگو ہوتی ہے۔ مثال کے طور پر، فنکشن میں "def f(a, b, /, c, d, *, e, f):" متغیرات "a" اور "b" کو صرف اس ترتیب میں تفویض کیا جا سکتا ہے کہ اقدار درج ہوں۔ ,
    متغیرات "e" اور "f"، صرف تفویض "variable=value" کے ذریعے، اور متغیرات "c" اور "d" درج ذیل طریقوں سے:

    f(10, 20, 30, 40, e=50, f=60)
    f(10, 20, s=30, d=40, e=50, f=60)

  • شامل کیا گیا۔ نیا C API
    ازگر کے ابتدائی پیرامیٹرز کو ترتیب دینے کے لیے، تمام پر مکمل کنٹرول کی اجازت دیتا ہے۔ ترتیب اور غلطی سے نمٹنے کی جدید سہولیات فراہم کرنا۔ مجوزہ API دیگر C ایپلیکیشنز میں Python انٹرپریٹر کی فعالیت کو سرایت کرنا آسان بناتا ہے۔

  • لاگو کیا C زبان میں لکھی گئی اشیاء تک تیزی سے رسائی کے لیے نیا Vectorcall پروٹوکول۔ CPython 3.8 میں، Vectorcall تک رسائی اب بھی اندرونی استعمال تک محدود ہے؛ CPython 3.9 میں عوامی طور پر قابل رسائی APIs کے زمرے میں منتقلی کی منصوبہ بندی کی گئی ہے۔
  • شامل کیا گیا۔ رن ٹائم آڈٹ ہکس کو کال کرتا ہے، جو ازگر میں ایپلیکیشنز اور فریم ورک فراہم کرتا ہے جس میں اسکرپٹ کی پیش رفت کے بارے میں کم درجے کی معلومات تک رسائی ہوتی ہے تاکہ انجام دیے گئے اعمال کا آڈٹ کیا جا سکے (مثال کے طور پر، آپ ماڈیولز کی درآمد، فائلوں کو کھولنے، ٹریس کا استعمال کرتے ہوئے ٹریک کر سکتے ہیں، نیٹ ورک ساکٹ تک رسائی، exec، eval اور run_mod کے ذریعے کوڈ چلانا؛
  • ماڈیول میں اچار محفوظ Pickle 5 پروٹوکول کے لیے سپورٹ، جو اشیاء کو سیریلائز کرنے اور ڈی سیریلائز کرنے کے لیے استعمال کیا جاتا ہے۔ Pickle آپ کو کثیر کور اور ملٹی نوڈ کنفیگریشنز میں Python کے عمل کے درمیان بڑی مقدار میں ڈیٹا کی منتقلی کو بہتر بنانے کی اجازت دیتا ہے میموری کاپی آپریشنز کی تعداد کو کم کر کے اور اضافی آپٹیمائزیشن تکنیکوں جیسے ڈیٹا مخصوص کمپریشن الگورتھم کا استعمال کر کے۔ پروٹوکول کا پانچواں ورژن آؤٹ آف بینڈ ٹرانسمیشن موڈ کے اضافے کے لیے قابل ذکر ہے، جس میں ڈیٹا کو مرکزی اچار کی ندی سے علیحدہ طور پر منتقل کیا جا سکتا ہے۔
  • پہلے سے طے شدہ طور پر، Pickle پروٹوکول کا چوتھا ورژن چالو ہوتا ہے، جو پہلے سے پہلے پیش کیے گئے تیسرے ورژن کے مقابلے میں، اعلی کارکردگی اور منتقل شدہ ڈیٹا کے سائز میں کمی کی اجازت دیتا ہے۔
  • ماڈیول میں ٹائپ کئی نئی خصوصیات متعارف کرائی گئی ہیں:
    • طبقے کے TypedDict ایسوسی ایٹیو صفوں کے لیے جس میں کلیدوں سے وابستہ ڈیٹا کے لیے قسم کی معلومات واضح طور پر بیان کی گئی ہیں ("TypedDict('Point2D', x=int, y=int, label=str)")۔
    • قسم لفظی، جو آپ کو ایک پیرامیٹر کو محدود کرنے یا قدر کو چند پہلے سے طے شدہ اقدار تک واپس کرنے کی اجازت دیتا ہے ("لفظی['منسلک'، 'منقطع']")۔
    • ڈیزائن"حتمی"، جس سے متغیرات، افعال، طریقوں اور کلاسوں کی قدروں کی وضاحت ممکن ہو جاتی ہے جنہیں تبدیل یا دوبارہ تفویض نہیں کیا جا سکتا ("pi: Final[float] = 3.1415926536")۔
  • بائیک کوڈ کے ساتھ مرتب شدہ فائلوں کے لیے ایک کیش تفویض کرنے کی صلاحیت کو شامل کیا گیا، ایک علیحدہ FS درخت میں محفوظ کیا گیا اور کوڈ کے ساتھ ڈائریکٹریز سے الگ کیا گیا۔ بائیک کوڈ کے ساتھ فائلوں کو محفوظ کرنے کا راستہ متغیر کے ذریعے سیٹ کیا گیا ہے۔ پائتھونپائی کیچپریفکس یا آپشن "-X pycache_prefix"؛
  • لاگو کیا Python کی ڈیبگ بلڈز بنانے کی صلاحیت جو ریلیز سے مماثل ABI استعمال کرتی ہے، جو آپ کو SI زبان میں لکھی گئی ایکسٹینشن لوڈ کرنے کی اجازت دیتی ہے، مستحکم ریلیز کے لیے مرتب کردہ، ڈیبگ بلڈز میں؛
  • f-strings ('f' کے ساتھ پریفکس شدہ لٹریلز) = آپریٹر (مثال کے طور پر، "f'{expr=}'") کے لیے سپورٹ فراہم کرتے ہیں، جو آپ کو آسانی سے ڈیبگنگ کے لیے ایک ایکسپریشن کو ٹیکسٹ میں تبدیل کرنے کی اجازت دیتا ہے۔ مثال کے طور پر:

    ››› صارف = 'eric_idle'
    ››› رکن_سے = تاریخ (1975، 7، 31)
    ››› f'{user=} {member_since=}'
    "user='eric_idle' member_since=datetime.date(1975, 7, 31)"

  • اظہار "جاری» بلاک کے اندر استعمال کرنے کی اجازت ہے۔ آخر;
  • نیا ماڈیول شامل کیا گیا۔ multiprocessing.shared_memoryملٹی پروسیس کنفیگریشنز میں مشترکہ میموری سیگمنٹس کے استعمال کی اجازت دینا؛
  • ونڈوز پلیٹ فارم پر، asyncio نفاذ کو کلاس استعمال کرنے کے لیے منتقل کر دیا گیا ہے۔ پرویکٹر ایونٹ لوپ;
  • ایک نئے آبجیکٹ کوڈ کیشنگ میکانزم کے استعمال کی وجہ سے LOAD_GLOBAL ہدایات کی کارکردگی میں تقریباً 40% اضافہ ہوا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں