تفاوت بین ماژول، پکیج، لایبرری و فریمورک در پایتون
اگر با پایتون تازه کار هستید، ممکن است درباره همه لایبرری ها، پکیج ها، ماژول ها و فریمورک های آن گیج شده باشید. از زمینه، معمولاً می توانید درک کنید که اینها قطعات کد هستند. اما تفاوت آنها در چیست؟ در این مقاله، تفاوت بین ماژول های پایتون، پکیج ها، لایبرری ها و فریمورک ها را به زبان ساده توضیح خواهم داد.
برنامه های دنیای واقعی پیچیده هستند. اگر همه چیز را از ابتدا برنامه ریزی کنید، حتی یک بازی ساده مانند شبیه ساز تاس به کد زیادی نیاز دارد. برای ساده سازی فرآیند و موثرتر شدن آن، توسعه دهندگان از برنامه نویسی ماژولار استفاده می کنند - روشی برای تقسیم وظایف بزرگ برنامه نویسی به زیر وظایف کوچکتر و قابل مدیریت. به همین دلیل است که پایتون دارای تعداد زیادی ماژول، پکیج، لایبرری و فریمورک است.
اکنون ، بیایید عمیق تر به هر یک از این مفاهیم بپردازیم تا بتوانیم تفاوت ها را درک کنیم.
دوره پیشنهادی: دوره آموزش الگوریتمنویسی در پایتون
# ماژولهای پایتون
اگر می خواهید کد شما به خوبی سازماندهی شده باشد، بهتر است با گروه بندی کد مربوطه شروع کنید. ماژول در اصل مجموعه ای از کد های مرتبط است که در یک فایل با پسوند .py ذخیره می شوند. شما می توانید توابع، کلاسها یا متغیرها را در یک ماژول تعریف کنید. همچنین افزودن کد قابل اجرا در ماژول ها خوب است.
به عنوان مثال، اجازه دهید تابعی را برای استقبال از دانشجویان جدید در یک دوره خاص تعریف کنیم:
def welcome_message(course):
print("Thank you for subscribing to our " + course + " course. You will get all the details in an email shortly.")
برای ذخیره این فانکشن در ماژول welcome ، این کد را در فایلی با نام welcome.py ذخیره می کنیم.
اگر می خواهیم از این کد در برنامه خود استفاده کنیم، ابتدا باید ماژول مربوطه را با استفاده از دستور import وارد کنیم. سپس، ما آماده استفاده از یک تابع تعریف شده در این ماژول با فراخوانی آن تابع با نحو module.function () هستیم:
import welcome
welcome.welcome_message (“Python Basics Part 1”)
# Output
# Thank you for subscribing to our Python Basics Part 1 course. You will get all the details in the email shortly.
معمول است که بسیاری از موارد مختلف در یک ماژول تعریف شده باشد. بنابراین، ممکن است بخواهید فقط یک تابع خاص را به جای کل ماژول وارد کنید. برای آن ، می توانید از نحو زیر استفاده کنید:
from welcome import welcome_message
اگر تجربه کار با پایتون را دارید، احتمالاً از ماژول ها استفاده کرده اید. به عنوان مثال، ممکن است از موارد زیر استفاده کرده باشید:
- ماژول random برای ایجاد دادههای تصادفی استفاده میشود.
- ماژول datetime پایتون می تواند به شما در مدیریت ماهیت پیچیده تاریخ و زمان کمک کند.
- ماژول contextlib به ما کمک میکنه که بتونیم از context managerها به صورت ساده تر و سریع تر استفاده کنیم.
- ماژول textwrap برای تغییر دادن نحوه نمایش پاراگراف ها در پایتون استفاده میشود.
# پکیجهای پایتون
هنگام توسعه یک برنامه بزرگ، ممکن است با ماژول های مختلفی مواجه شوید که مدیریت آنها دشوار است. در چنین حالتی، از گروه بندی و سازماندهی ماژول های خود سود خواهید برد. آن زمان است که پکیج ها به کار می افتند.
پکیج های پایتون در اصل حاوی مجموعه ای از ماژول ها هستند. پکیج ها ساختار سلسله مراتبی فضای نام ماژول را امکان پذیر می کنند. درست مانند اینکه فایل های خود را بر روی یک هارد دیسک به پوشه ها و زیر پوشه ها سازماندهی می کنیم ، ما نیز می توانیم ماژول های خود را به صورت پکیج ها و زیر پکیج ها سازماندهی کنیم.
ویدیو مرتبط: ویدیو توضیح کاربرد فایل init در پایتون
برای در نظر گرفتن یک پکیج (یا زیر پکیج)، یک دایرکتوری باید حاوی یک فایل به نام __init__.py باشد. این فایل معمولاً شامل کد اولیه برای پکیج مربوطه است.
به عنوان مثال ، ما می توانیم پکیج زیر my_model را با ماژول های مربوط به پروژه علم داده خود داشته باشیم:
ما می توانیم ماژول های خاصی را از این پکیج با استفاده از نماد نقطه وارد کنیم. به عنوان مثال ، برای وارد کردن ماژول dataset
از پکیج فوق ، می توانیم از یکی از قطعات کد زیر استفاده کنیم:
import my_model.training.dataset
# OR
from my_model.training import dataset
در مرحله بعد، ما ممکن است فقط تابع load_dataset () را از ماژول dataset.py خود وارد کنیم. هر یک از گزینه های زیر کار خود را انجام می دهد:
import my_model.training.dataset.load_dataset()
# OR
from my_model.training.dataset import load_dataset()
بسیاری از پکیج های پایتون داخلی و منبع باز وجود دارد که احتمالاً قبلاً از آنها استفاده می کنید. مثلا:
- NumPy بسته اساسی پایتون برای محاسبات علمی است.
- pandas یک پکیج پایتون برای پردازش سریع و کارآمد داده های جدولی ، سری های زمانی ، داده های ماتریسی و غیره است.
- pytest انواع مختلفی از ماژول ها را برای تست کد جدید ارائه می دهد، از جمله تست های واحد کوچک یا آزمایش های پیچیده عملکردی.
دوره پیشنهادی: دوره آموزش تست نویسی در پایتون
همانطور که برنامه شما بزرگتر می شود و از ماژول های مختلف استفاده می کند ، پکیج های پایتون به یک جزء مهم برای بهینه سازی ساختار کد شما تبدیل می شوند.
# لایبرریهای پایتون
لایبرری(کتابخانه) یک اصطلاح چتری است که به یک قطعه کد قابل استفاده مجدد اشاره دارد. معمولاً یک کتابخانه پایتون شامل مجموعه ای از ماژول ها و بسته های مرتبط است. در واقع ، این اصطلاح اغلب به جای "پکیج پایتون" به کار می رود زیرا پکیج ها همچنین می توانند شامل ماژول ها و پکیج های دیگر (زیر پکیج ها) باشند. با این حال ، اغلب تصور می شود که در حالی که یک پکیج مجموعه ای از ماژول ها است ، یک کتابخانه مجموعه ای از پکیج ها است.
اغلب اوقات، توسعه دهندگان کتابخانه های پایتون را ایجاد می کنند تا کد های قابل استفاده مجدد را با جامعه به اشتراک بگذارند. برای حذف نیاز به نوشتن کد از ابتدا، آنها مجموعه ای از توابع مفید مربوط به یک منطقه را ایجاد می کنند.
امروزه هزاران کتابخانه مفید موجود است. من فقط چند مثال می زنم:
+ کتابخانه Matplotlib یک کتابخانه استاندارد برای ایجاد تجسم داده در پایتون است. این برنامه از ساختن نمودارهای اصلی دو بعدی و همچنین تجسمات متحرک و تعاملی پیچیده تری پشتیبانی می کند.
+ PyTorch یک کتابخانه فراگیر منبع باز است که توسط آزمایشگاه AI Research فیس بوک برای پیاده سازی شبکه های عصبی پیشرفته و ایده های نوین تحقیقاتی در صنعت و دانشگاه ساخته شده است.
+ pygame هزاران ویژگی و ابزار مناسب را در اختیار توسعه دهندگان قرار می دهد تا توسعه بازی را به یک کار ساده تبدیل کند.
+ Beautiful Soup یک کتابخانه بسیار محبوب پایتون برای دریافت داده از وب است. ماژول ها و پکیج های داخل این کتابخانه به استخراج اطلاعات مفید از فایل های HTML و XML کمک می کند.
+ Requests بخشی از مجموعه بزرگی از کتابخانه ها است که برای ساده تر کردن درخواست های HTTP طراحی شده است. کتابخانه یک روش JSON بصری ارائه می دهد که به شما کمک می کند از اضافه کردن رشته های پرس و جو به آدرس های اینترنتی خود جلوگیری کنید.
+ missno برای مدیریت نقاط داده از دست رفته بسیار مفید است. این برنامه تجسم های آموزنده ای در مورد مقادیر گمشده در یک قاب داده ارائه می دهد و به دانشمندان داده کمک می کند تا مناطق دارای داده های مفقوده را تشخیص دهند. این تنها یکی از بسیاری از کتابخانه های بزرگ پایتون برای پاکسازی داده ها است.
به هر حال ، بسته های NumPy و pandas که قبلاً ذکر شد نیز اغلب به عنوان کتابخانه شناخته می شوند. دلیل این امر این است که پکیج های پیچیده ای هستند که کاربردهای وسیعی دارند (به ترتیب محاسبات علمی و دستکاری داده ها). آنها همچنین شامل چند پکیج فرعی هستند و بنابراین اساساً تعریف کتابخانه پایتون را برآورده می کنند. در این مقاله با سایر کتابخانه های مهم علم داده آشنا شوید.
# فریمورکهای پایتون
مشابه کتابخانه ها، فریم ورک های پایتون مجموعه ای از ماژول ها و پکیج ها هستند که به برنامه نویسان کمک می کند تا روند توسعه را سریع دنبال کنند. با این حال ، چارچوب ها معمولاً پیچیده تر از کتابخانه ها هستند. همچنین، در حالی که کتابخانه ها دارای پکیج هایی هستند که عملیات خاصی را انجام می دهند ، فریم ورک ها شامل جریان اصلی و معماری برنامه هستند.
اگر توسعه برنامه را با ساخت و ساز خانه مقایسه کنید ، فریم ورک های پایتون همه اجزای اصلی ضروری مانند فونداسیون ، دیوارها ، پنجره ها و سقف را ارائه می دهند. سپس ، توسعه دهندگان با افزودن ویژگی های قابل مقایسه با سیستم هشدار خانه ، مبلمان ، لوازم و غیره ، برنامه خود را در اطراف این پایه ایجاد می کنند.
برای درک بهتر ، اجازه دهید چندین چارچوب محبوب را مرور کنیم:
+ جنگو یک چارچوب پایتون برای ساخت برنامه های تحت وب با کد نویسی کمتر است. با تمام ویژگی های لازم به طور پیش فرض ، توسعه دهندگان می توانند بر روی برنامه های کاربردی خود تمرکز کنند تا با فرایندهای معمول سر و کار نداشته باشند.
+ Flask یک چارچوب توسعه وب است که به دلیل طراحی سبک و ماژولار خود مشهور است. این دستگاه دارای بسیاری از ویژگی های خارج از جعبه است و به راحتی با شرایط خاص سازگار است.
+ Bottle چارچوب سبک دیگری برای توسعه وب است که در ابتدا برای ایجاد API ها در نظر گرفته شده بود. ویژگی های منحصر به فرد آن این است که هیچ وابستگی به غیر از کتابخانه استاندارد پایتون ندارد و همه چیز را در یک فایل منبع واحد پیاده سازی می کند.
چارچوب های پایتون به برنامه نویسان این امکان را می دهد تا ضمن ایجاد انعطاف پذیری ، فرایند توسعه وب را با فراهم آوردن زیرساخت های لازم ساده کنند. جای تعجب نیست که برنامه های برتر - از جمله Netflix ، Airbnb ، Reddit و Udemy - از مزایای چارچوب های پایتون استفاده می کنند.
اگر مقاله بالا را دوست داشتید، پیشنهاد میکنیم به مطالب زیر هم سر بزنید:
ویدیو آموزش کار با markdown در پایتون
شاید شما اصلا نباید برنامهنویس شوید