۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

۴ کلید برای نوشتن پایتون مدرن

اگر می‌خواهید کد پایتون بنویسید که از جدیدترین و قوی‌ترین ویژگی‌های زبان بهره می‌برد، در اینجا چهار زمینه برای بررسی وجود دارد.

اگر می‌خواهید کد پایتون بنویسید که از جدیدترین و قوی‌ترین ویژگی‌های زبان بهره می‌برد، در اینجا چهار زمینه برای بررسی وجود دارد.

اگرچه Python در سال ۲۰۲۱ ۳۰ ساله شد، اما انفجار پذیرش، رشد و توسعه آینده نگر مرتبط با این زبان هنوز نسبتاً جدید است. بسیاری از ویژگی‌های پایتون از زمان پیدایش آن بدون تغییر باقی مانده‌اند، اما هر سال که می‌گذرد و هر نسخه جدید پایتون، روش‌های جدیدی برای انجام کارها و کتابخانه‌های جدیدی وجود دارد که از این پیشرفت‌ها بهره می‌برند.

بنابراین، پایتون راه‌های قدیمی و راه‌های جدید خود را دارد. طبیعتاً، یادگیری نحوه کار با پایتون با استفاده از مدرن ترین و راحت ترین ویژگی های آن منطقی است. در اینجا، مفاهیم کلیدی را که برای نوشتن پایتون مدرن در سال ۲۰۲۴ نیاز دارید، بیان می‌کنیم—نرم‌افزاری که از جدیدترین و بهترین اصطلاحات، مفاهیم و قابلیت‌های پایتون استفاده می‌کند.

Type hinting در Python

نمونه نحوی که اخیراً معرفی شده پایتون به ابزارهای کیفیت کد شخص ثالث اجازه می دهد تا کد شما را قبل از زمان اجرا تجزیه و تحلیل کنند و خطاهای احتمالی را قبل از وزوز تشخیص دهند. هرچه بیشتر کد پایتون را برای اشتراک گذاری با دیگران ایجاد کنید، احتمال بیشتری وجود دارد که شما (و سایرین!) از استفاده از نکات تایپ سود ببرید.

هر بازبینی متوالی پایتون حاشیه‌گذاری‌های پیچیده‌تر و قدرتمندتر را ارائه می‌کند. اگر عادت به یادگیری نحوه استفاده از حاشیه نویسی تایپ در کوتاه مدت داشته باشید، برای استفاده از هر نوع جدید نوآوری که معرفی می شود، مجهزتر خواهید بود.

به خاطر داشته باشید که نکات تایپ اختیاری هستند، نه اجباری. هر پروژه ای به آنها نیاز ندارد. از نکات تایپ برای قابل فهم کردن پروژه های بزرگتر خود استفاده کنید، اما با خیال راحت آنها را از یک اسکریپت دور ریختنی ۵۰ خطی حذف کنید. و در حالی که راهنمایی‌های نوع در زمان اجرا اجرا نمی‌شوند، می‌توانید از Pydantic برای این امکان استفاده کنید. بسیاری از پروژه های Python که به طور گسترده مورد استفاده قرار می گیرند از Pydantic به طور گسترده استفاده می کنند—FastAPI یک مثال است.

کار با موتور قوانین دات نت مایکروسافت

محیط های مجازی پایتون و مدیریت بسته

برای پروژه‌های ساده و کارهای توسعه‌ای بدون نیاز، اغلب می‌توانید از ابزار داخلی venv پایتون برای جدا نگه داشتن پروژه‌ها و الزامات آنها استفاده کنید. اما پیشرفت‌های اخیر در ابزار Python گزینه‌های بیشتری را در اختیار شما قرار می‌دهد:

  • Pyenv: اگر می‌خواهید چندین نسخه از پایتون را برای برآورده کردن نیازهای پروژه‌های مختلف نصب کنید، Pyenv به شما امکان می دهد بین آنها به صورت جهانی یا بر اساس هر پروژه جابجا شوید. اگر متوجه شوید که کارهای زیادی را با نسخه های مختلف پایتون درست در خط فرمان، خارج از زمینه محیط مجازی هر پروژه انجام می دهید، مفید است. توجه داشته باشید که هیچ پشتیبانی رسمی ویندوز وجود ندارد، اما یک پورت غیر رسمی ویندوز وجود دارد. li>
  • Pipenv: به‌عنوان «جریان کاری برنامه‌نویس پایتون برای انسان»، Pipenv< /a> به معنای مدیریت یک محیط مجازی است به اضافه تمامی وابستگی های پروژه شما. همچنین تضمین می‌کند که وابستگی‌ها قطعی هستند، به این معنی که نسخه‌های خاصی را که می‌خواهید دریافت می‌کنید، و آنها در ترکیبی که درخواست می‌کنید کار می‌کنند. با این حال Pipenv به هیچ شکلی با بسته بندی صحبت نمی کند، بنابراین برای پروژه هایی که در نهایت می خواهید در PyPI آپلود کنید یا با دیگران به اشتراک بگذارید ایده آل نیست.
  • شعر: با گسترش مجموعه ابزار Pipenv، شعر نه تنها پروژه‌ها و الزامات را مدیریت می‌کند. ، اما همچنین استقرار پروژه در PyPI را آسان می کند. همچنین محیط های مجازی را برای شما جدا از دایرکتوری های پروژه شما مدیریت می کند.
  • PDM: PDM (مخفف Python Development Master a>) یک پروژه پیشرفته اخیر در این زمینه است. مانند Poetry و Pipenv، PDM برای راه‌اندازی یک پروژه، مدیریت وابستگی‌های آن و ساخت مصنوعات توزیع از آن، یک رابط واحد را در اختیار شما قرار می‌دهد. PDM همچنین از استاندارد PEP 582 برای ذخیره کردن بسته‌ها به صورت محلی در پروژه، بنابراین نیازی به ایجاد محیط های مجازی برای هر پروژه نیست. اما این ابزار نسبتا جدید است، بنابراین قبل از استفاده از آن در تولید، مطمئن شوید که به طور موقت کار می کند.
  • هچ: پروژه دریچه نه تنها راه‌اندازی و مدیریت پروژه را مدیریت می‌کند، اما همچنین یک سیستم ساخت، ابزارهایی برای بسته‌بندی پروژه‌ها برای توزیع مجدد در PyPI، مدیریت آزمایش و بسیاری از توابع مفید دیگر ارائه می‌دهد.
  • uvپروژه آزمایشی uv توسط همین نوشته شده است افرادی که ruff ابزار لینتینگ پایتون را می سازند. هدف آن جایگزینی pip، venv و چندین ابزار خط فرمان پایتون است. برای سرعت در Rust نوشته شده است (مانند ruff)، و بسیاری از دستورات آن شبیه دستورات pip و سایر ابزارهایی است که جایگزین می‌شود و یادگیری آن را نسبتاً آسان می‌کند.

هنگام ایجاد پروژه‌های جدید که قرار است در یک محیط تیمی روی آنها کار شود یا بین دیگران توزیع شود (مثلاً از طریق PyPI)، مطمئن شوید که از قالب مدرن pyproject.toml برای نیازهای خود استفاده کنید و پیکربندی پروژه، همراه با طرح پروژه مورد استفاده با آن. همچنان می‌توانید از فایل قدیمی requirements.txt در کنار pyproject.toml استفاده کنید، اما مورد دوم طیف وسیع‌تری از موارد استفاده را پوشش می‌دهد و پروژه‌های شما را به جلو می‌برد- سازگار است.

سیستکس جدید پایتون

تکامل پایتون به معنای افزودن‌های جدید بسیاری به خود زبان بوده است. چند نسخه آخر پایتون ساختارهای نحوی مفیدی را اضافه کرده اند که امکان برنامه ریزی قوی تر و مختصرتر را فراهم می کند. اگرچه آنها اجباری نیستند، ممکن است ماژول های شخص ثالث جدیدتر از آنها استفاده کنند، بنابراین ارزش آشنایی با آنها را حداقل به صورت اتفاقی دارند.

سه افزودن نحو اخیر به ویژه قابل توجه است.

تطابق الگو

بزرگ‌ترین افزوده اخیر، تطبیق الگوی ساختاری، که به پایتون ۳.۱۰ وارد شد، چیزی فراتر از «switch/case برای پایتون» است که گاهی اوقات توضیح داده شده است. تطبیق الگوی ساختاری به شما امکان می دهد بر اساس محتویات یا ساختار اشیاء تصمیم گیری در مورد جریان کنترل بگیرید. به طور خلاصه، این روشی برای مطابقت بر اساس انواع یا شکل انواع (لیستی با int و یک رشته< /code>، به عنوان مثال) به جای مقدار.

«اپراتور والروس»

به خاطر ظاهرش (:=)، اپراتور walrus که در Python 3.8 اضافه شده است، عبارات انتساب، روشی برای اختصاص یک مقدار به یک متغیر و سپس اعمال یک تست برای متغیر در یک مرحله. در بسیاری از موقعیت‌های رایج، مانند بررسی مقدار بازگشتی یک تابع و در عین حال حفظ نتایج، کدهای پرمخاطب کمتری را ایجاد می‌کند.

پارامترهای فقط موقعیت

یک افزودنی جزئی اما مفید اخیر به نحو پایتون، positional- فقط پارامترها، به شما امکان می‌دهد مشخص کنید کدام پارامترهای تابع باید به‌عنوان پارامترهای موقعیتی مشخص شوند، نه به‌عنوان آرگومان‌های کلیدواژه. این ویژگی عموماً برای بهبود وضوح و تسهیل توسعه آینده یک پایگاه کد در نظر گرفته شده است، اهدافی که بسیاری از دیگر ویژگی‌های جدید پایتون نیز بر آن تمرکز دارند.

تست پایتون

نوشتن تست‌ها برای یک پایگاه کد مانند نخ دندان کشیدن روزانه است: همه قبول دارند که این کار خوبی است، تعداد کمی از ما واقعاً آن را انجام می‌دهیم و حتی کمتر آن را به درستی انجام می‌دهیم. پایگاه‌های کد پایتون مدرن شایسته داشتن مجموعه‌های آزمایشی هستند و ابزارهای فعلی برای آزمایش، ایجاد مجموعه‌های آزمایشی را آسان‌تر از همیشه می‌کنند.

پایتون چارچوب تست داخلی خود را دارد، unittest. به عنوان پیش فرض بد نیست، اما طراحی و رفتارهای آن قدیمی است. چارچوب پایتست به عنوان یک جایگزین رایج به شهرت رسیده است. انعطاف‌پذیرتر است (شما می‌توانید تست‌ها را در هر قسمت از کد خود اعلام کنید، نه فقط یک زیر مجموعه) و نیاز به نوشتن boilerplate بسیار کمتری دارد. به علاوه، Pytest دارای افزونه‌های زیادی برای گسترش عملکرد خود است (مثلاً ، برای آزمایش کد ناهمزمان).

یکی دیگر از موارد کمکی مهم برای آزمایش، پوشش کد است، که تعیین می‌کند آزمایش‌ها واقعاً چه مقدار از پایگاه کد فرد را پوشش می‌دهند. ماژول پوشش این مورد را پوشش داده است (همانطور که از نام آن پیداست) و Pytest حتی با یک پلاگین برای کار با آن.