برنامه نویسی 1171 بازدید

در این مطلب، روش دانه‌بندی کدهای «زبان برنامه‌نویسی پایتون» (Python Programming Language) در «ماژول‌های» (Modules) تمیز و کارآمد، با استفاده از بسته های پایتون (Package) آموزش داده شده است. همچنین، «روش وارد کردن» (ایمپورت | Import) و استفاده از بسته‌های شخص ثالث در برنامه‌های پایتون آموزش داده شده است. به طور کلی، در این راهنما، «بسته های پایتون (Package)» مورد بررسی قرار گرفته‌اند. شایان ذکر است که پیش از این، در مطلب «ماژول‌های پایتون (Python Modules) — به زبان ساده»، مفهوم ماژول، روش وارد کردن ماژول‌ها در پایتون، و دیگر مفاهیم مرتبط با ماژول‌ها، مورد بررسی قرار گرفت.

بسته های پایتون (Python Packages)

کاربران معمولا همه فایل‌های خود را در کامپیوتر در یک محل ذخیره نمی‌کنند؛ بلکه از یک سلسله مراتب برای ذخیره‌سازی آن‌ها بهره می‌برند تا دسترسی به فایل‌ها برایشان ساده‌تر باشد. در واقع، فایل‌های مشابه در «پوشه» (Directory) مشابهی قرار می‌گیرند. برای مثال، همه آهنگ‌ها در پوشه «Music» نگه‌داری می‌شوند. به طور مشابه، پایتون دارای بسته‌هایی (Packages) برای دایرکتوری‌ها و ماژول‌هایی برای فایل‌ها است. هر چه برنامه نوشته شده توسط کاربر بزرگ و بزرگ‌تر شود و تعداد ماژول‌های آن افزایش پیدا کند، ماژول‌های مشابه در یک بسته و ماژول‌های متفاوت در بسته‌های متفاوتی قرار می‌گیرند.

این امر، مدیریت یک پروژه (برنامه) را آسان‌تر و به لحاظ مفهومی شفاف‌تر می‌کند. به طور مشابه، همانطور که یک پوشه می‌تواند دارای زیرپوشه‌ها (Sub-Directories) و فایل‌هایی باشد، بسته های پایتون نیز می‌تواند زیربسته‌ها و ماژول‌ها را دربربگیرند. یک پوشه باید حاوی یک فایل با نام init__.py__ برای پایتون باشد تا آن را به عنوان یک بسته در نظر بگیرد. این فایل می‌تواند خالی رها شود، اما به طور کلی کد مقداردهی اولیه برای بسته در این فایل قرار می‌گیرد. در ادامه، مثالی برای آنچه بیان شد ارائه شده است. فرض می‌شود که کاربر در حال توسعه دادن یک بازی است. یک راه ممکن برای سازمان‌دهی بسته‌ها و ماژول‌ها در تصویر زیر نمایش داده شده است.

بسته ها در پایتون (Package) -- به زبان ساده

وارد کردن ماژول از یک بسته

می‌توان ماژول‌های یک «بسته» (پکیج | Package) را با استفاده از عملگر «.» وارد کرد. برای مثال، اگر قصد وارد کردن ماژول start در مثال بالا وجود داشته باشد، این کار به صورت زیر انجام می‌شود.

import Game.Level.start

اکنون، اگر ماژول حاوی یک تابع با نام ()select_difficulty باشد، باید از نام کامل برای ارجاع دادن به آن استفاده شود.

Game.Level.start.select_difficulty(2)

اگر این ساختار خیلی طولانی به نظر می‌رسد، می‌توان ماژول را بدون پسوند بسته و به صورت زیر وارد کرد.

from Game.Level import start

اکنون، به سادگی می‌توان تابع را به صورت زیر فراخوانی کرد.

start.select_difficulty(2)

همچنین، راه دیگری برای اینکه فقط تابع مورد نیاز (کلاس یا متغیر) از یک ماژول درون بسته وارد شود وجود دارد؛ این راهکار، به صورت زیر است.

from Game.Level.start import select_difficulty

اکنون، می‌توان به صورت مستقیم این تابع را فراخوانی کرد.

select_difficulty(2)

با وجود ساده‌تر بودن روش مذکور نسبت به سایر روش‌ها، استفاده از این روش توصیه نمی‌شود. استفاده از «فضای نام» (Namespace) کامل، مانع از سردرگمی می‌شود و از تصادم نام دو شناساگر با نام یکسان پیشگیری می‌کند. هنگام وارد کردن بسته، پایتون درون لیست پوشه‌های تعریف شده در sys.path را می‌گردد؛ این همان کاری است که برای جستوجوی مسیر ماژول‌ها انجام می‌دهد.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای 9 نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

«الهام حصارکی»، فارغ‌التحصیل مقطع کارشناسی ارشد مهندسی فناوری اطلاعات، گرایش سیستم‌های اطلاعات مدیریت است. او در زمینه هوش مصنوعی و داده‌کاوی، به ویژه تحلیل شبکه‌های اجتماعی، فعالیت می‌کند.

یک نظر ثبت شده در “بسته های پایتون (Package) — به زبان ساده

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *