همه چیز در مورد کار با ماژول در پایتون
برنامهنویسی پایتون بر پایه ماژول بنا شده است؛ بنابراین کار با ماژول در پایتون از اصول اولیهای محسوب میشود و یادگیری آن از ملزومات کدنویسی با این زبان به شمار میآید. در کل ساختار ماژولار از اهمیت بالایی برخوردار است. چنانچه اغلب زبانهای برنامه نویسی مطرح دنیا از آن پیروی میکنند. بهاحتمالقوی شمایی که در حال مطالعه این مطلب هستید به تازگی وارد دنیای برنامه نویسی با زبان پایتون شدید. از این جهت کار با ماژول در پایتون میتواند دغدغهای باشد که باعث درگیری ذهنتان میشود؛ چرا که در ابتدای راه ابهامات زیادی در مورد کار با ماژول در پایتون مطرح میشوند. اما نگران نباشید در ادامه متوجه خواهید شد کار با این ابزار چقدر ساده است.
همچنین ممکن است در صورتی که از قبل یادگیری برنامهنویسی با زبان پایتون را شروع کردید حس کنید به پاسخ دقیقی برای سؤال «پایتون چیست؟» رسیدید. اما جهت ارائه بهترین تعریف برای پایتون باید تسلط کافی به مبحث ماژولهای این زبان داشته باشید. در نتیجه به هیچ عنوان این مقاله را از دست ندهید.
کار با ماژول در پایتون
برای شروع کار با ماژول در پایتون ابتدا باید یک تعریف از این واژه داشته باشیم. به این منظور از مباحث الکترونیک کمک میگیریم. در دنیای کار با قطعات الکترونیک هم اصطلاح ماژول وجود دارد. در الکترونیک به قطعات مجزایی که توانایی انجام کاری را به صورت مستقل دارند یک مدار گفته میشود. از یک مدار الکتریکی میتوان به عنوان ماژول استفاده کرد.
اما آیا هر قطعهای که کاری انجام میدهد یک ماژول است؟ قطعاً خیر. یک ماژول علاوه بر داشتن توانایی اجرای یک فرایند باید قابلیت اتصال و افزودن ویژگیهای خود به یک مدار الکتریکی جدید را داشته باشد. یعنی باید دارای اتصالاتی فیزیکی باشد که یک مدار الکتریکی دیگر بتواند به کمک آنها با این ماژول ارتباط برقرار کرده و از قابلیت آن استفاده کند. به عنوان مثال فرض کنید یک مدار الکتریکی داریم که تشخیص حرکت انجام میدهد و برای اعلام تشخیص خود بوق میزند. برای این که یک چراغ چشمک زن به این سیستم اضافه شود باید کل مدار را مجدداً طراحی و پیادهسازی کنیم. اما در صورت ماژولار بودن مدار کافیست ماژول چراغ چشمک زن به آن اضافه شود. با این کار در هزینه و زمان صرفهجویی خواهد شد.
در برنامهنویسی هم نیاز به چنین قابلیتی داریم؛ زیرا بسیاری از ویژگیها بین برنامههایی که تولید میشوند مشترک هستند. قبل از به وجود آمدن ماژولها هر برنامهنویسی مجبور بود کدهای مشترک بین اپلیکیشنهای خود را هر بار تکرار کند. یا حداقل باید قسمتهای مختلف آن را تغییر میداد تا با نرمافزار جدید سازگار باشد. اما با وجود ماژول این کارها ضرورتی ندارد؛ چرا که با نصب Module مورد نظرمان میتوانیم بدون اضافه کاری ویژگیهای دلخواهمان را به سیستم اضافه کنیم. در واقع کار با ماژول در پایتون شبیه ارتقا دادن یک کیس است. هر ویژگی تنها با چند خط کد به برنامه افزوده میشود؛ بنابراین میتوانیم بگوییم: ماژول یک قطعه نرمافزاری مجزا است که با توجه به نیاز برنامهنویس به اپلیکیشن متصل میشود.
هر فایل پایتون که دارای پسوند .py باشد یک ماژول محسوب میشود مگر این که فایل اصلی برنامه باشد. یک برنامهنویس معمولاً کدهای پرتکرار برنامه را داخل فایل همان اپلیکیشن به کمک کلاسها و توابع پیادهسازی میکند. اما اگر کدهایی داشته باشیم که در فایلهای مختلف تکرار میشوند باید ماژول مربوط به آن را بسازیم. ماژولها یکی از مفاهیم پیشرفته شیءگرایی در پایتون محسوب میشوند. در نتیجه اگر با کلاس و تابع آشنا باشید کار با ماژول در پایتون راحتتر خواهد بود.
کار با انواع ماژول در پایتون
Module در پایتون اشکال مختلفی دارد که باید کار با هر کدام را بلد باشید. دسته اول ماژولهایی هستند که به شکل فایل جداگانه در برنامه استفاده میشوند. این ماژولها یا توسط خود برنامهنویس ساخته میشوند یا از یک برنامهنویس دیگر دریافت و مورد استفاده قرار میگیرند. این نوع Moduleها معمولاً کنار اپلیکیشن اصلی بوده و برای ما قابل مشاهده هستند.
اما دسته دوم ماژولها شکل رسمیتری دارند. برای استفاده از این ماژولها باید آنها را نصب کنیم. به این ماژولها package نیز گفته میشود و از طریق سایت pypi در دسترس هستند. در پایتون به پروژههای کوچکی که میتوان از آنها در پروژههای بزرگتر استفاده کرد پکیج میگویند. پکیجها پس از نصب به کتابخانه داخلی خود پایتون اضافه میشود. در نتیجه کنار برنامه اصلی ما دیده نمیشوند. اما این موضوع به این معنی نیست که هیچ دسترسی به آنها نداریم.
- نکته اول: زمانی نام پکیج را به کار میبریم که چند ماژول در یک بسته نرمافزاری ارائه شوند. در غیر این صورت ماژول مورد نظر با همان نام module شناخته میشود.
- نکته دوم: ماژولهایی که خود برنامهنویس میسازد User-defined Module ناد دارند.
- نکته سوم: به ماژولهایی که به صورت نصبی از سایت pypi دریافت میکنیم ماژول داخلی یا Built-in module گفته میشود.
نصب ماژول در پایتون
اگر ماژول مورد نیاز شما در دسته پکیجها قرار دارد، برای استفاده از آن ابتدا باید اقدام نصب آن کنید. در مثال اول میخواهیم سری فیبوناچی یک عدد را به دست بیاوریم. پیاده سازی این الگوریتم سخت نیست. اما برای صرفه جویی در زمان از ماژول آماده استفاده میکنیم. به سایت pypi رفته و عبارت Fib را سرچ کنید.
همانطور که در تصویر بالا میبینید چند پیشنهاد برای ما ظاهر شد. گزینه اول را انتخاب کرده و به صفحه آن میرویم.
داخل صفحه اختصاصی ماژول انتخابی توضیحی مختصر در مورد آن مشاهده میکنید. علاوه بر آن دو روش برای نصب آن پیشنهاد شده است. روش اول که در بالای صفحه میبینید نصب پکیج به وسیله دستور pip هست.
در صورتی که به اینترنت متصل هستید مطابق تصویر بالا دستور را وارد کرده و چند ثانیه صبر کنید تا ماژول نصب شود.
روش دوم نصب گزینه دانلود است. برای دانلود فایل ماژول از منوی سمت راست سایت Download files را بزنید تا گزینههای بعدی ظاهر شوند.
برای ادامه دانلود گزینه مشخص شده در تصویر بالا را انتخاب کنید تا یک فایل با پسوند .gz دریافت شود. این پسوند نوعی حالت فشرده مانند .rar است. فایل دانلودی را با نرمافزار winrar باز کنید. داخل این پوشه ۲ روش برای استفاده از پکیج مورد نظر دارید. روش اول نصب مستقیم است. برای نصب میتوانید فایل setup.py را اجرا کنید تا عملیات نصب به طور خودکار شروع شود.
در روش دوم باید سورس کد ماژول را پیدا کرده و یک کپی از آن را داخل پروژه خود اضافه کنیم. پوشه src و سپس پوشه fib-0112 را باز کرده و فایل fib.py را کپی و داخل پوشه پروژه خود Paste کنید.
Import کردن ماژول در پایتون
برای کار با ماژول در پایتون پس از مراحل بالا باید آن را در فایل اصلی اپلیکیشن خود فراخوانی کنیم. برای فراخوانی هر دو نوع ماژول معرفی شده روش یکسانی داریم.
در صورتی که ماژول انتخابی تنها یک تابع داشته باشد یا اگر بخواهیم از تمام توابع و کلاسهای موجود در ماژول استفاده کنیم باید از کد زیر استفاده شود.
Import fib
در این مثال ماژولی که با هم دانلود و نصب کردیم فراخوانی شده است. اگر میخواهید سورس کد ماژول را مشاهده کنید کلید ctrl را روی صفحه کلید نگه داشته با اشارهگر موس روی نام ماژول بزنید.
با این کار فایل fib.py باز میشود و میتوانید کدهای آن را مشاهده کنید.
اما در صورتی که ماژول انتخابی تعداد توابع بیشتری دارد و بخواهیم تنها از یک تابع استفاده کنیم دستور خود را به شکل زیر تغییر میدهیم. برای این مثال ماژول math را import میکنیم.
From math import sin
با ین دستور تابع sin از ماژول math فراخوانی میشود. در صورتی که بیش از یک تابع را نیاز دارید اما نمیخواهید کل ماژول را وارد برنامه کنید دستور را به شکل زیر بنویسید.
From math import sin , sumprod , fibs
در دستور بالا سه تابع از ماژول math را فراخوانی کردیم. اما گاهی اوقات نام تابع یا نام خود ماژول طولانی است و یادآوری و نوشتن آن کمی وقتگیر میشود. در این وارد باید به شکل زیر عمل کنیم.
From sys import activate_stack_trampoline as ast
با کد بالا به پایتون گفتیم که از این پس تابع activate_stack_trampoline از ماژول sys را با نام ast میشناسیم. یعنی هر وقت ast را صدا زدیم باید تابع activate_stack_trampoline را برای ما اجرا کند. اما در صورتی که نام ماژول مورد نظر طولانی است و کل ماژول را نیاز دارید دستور به شکل زیر تغییر خواهد کرد.
Import multiprocessing as mps
با این دستور هر وقت بخواهیم از ماژول multiprocessing در پایتون استفاده کنیم mps را Call خواهیم کرد.
Raspbarry pi چیست؟
گاهی اوقات تشابه اسمی ما را دچار اشتباه میکند. Raspberry pi که در ترجمه فارسی به صورت رزبری پای نوشته میشود از این دسته به شمار میآید. افرادی که تازه وارد دنیای برنامه نویسی پایتون شدهاند ممکن است این نام را با اسامی منتخب در پایتون اشتباه بگیرند. اما پایتون و رزبری پای هیچ ارتباطی باهم ندارند. رزبری پای در حقیقت نوعی کامپیوتر جیبی با توان محاسباتی بالا محسوب میشود. این کامپیوتر به قدری قدرتمند است که در برخی موارد از آن به عنوان سرور استفاده میکنند.
حرف آخر
پایتون یک زبان برنامهنویسی ماژولار است؛ بنابراین هر برنامهنویسی در بدو شروع یادگیری باید کار با ماژول در پایتون را بیاموزد. در این مقاله سعی کردیم همه چیز را در مورد کار با ماژول در پایتون به صورت حرفهای آموزش دهیم. در صورت وجود هرگونه ابهام و سؤال میتوانید از طریق بخش نظرات با ما در ارتباط باشید.
آموزش پایتون در مکتب خونه
مکتب خونه یکی از بزرگترین رسانههای آموزش مجازی ایران محسوب میشود. آموزشهای بسیاری در زمینه برنامهنویسی پایتون و زیر مجموعههای آن در مؤسسه آنلاین ما در دسترس کاربران فارسی زبان قرار گرفته است. از شما خواننده محترم دعوت میکنیم از دورههای آموزشی ما بازدید فرمایید. در صورتی که آموزشی را مد نظر دارید اما پرداخت هزینه آن برایتان مقدور نیست میتوانید از تخفیفهای ما در جشنوارهها و مناسبتهای مختلف استفاده کنید.
ما هر مناسبتی را بهانهای برای اعمال تخفیف در نطر میگیریم تا علاوه بر رعایت حقوق مدرس رعایت حال مصرف کننده نیز صورت بگیرد. همچنین برای دورههایی که نیاز به منتور، کوئیز و تمرین دارند خدمات ویژهای در این رابطه در نظر گرفتیم. امکان ارتباط با استاد و بقیه دانشپذیران خدمت دیگری است که مکتب خونه برای کاربران خود فراهم میکند؛ بنابراین با شرکت در دورههای ما هیچ سؤال و ابهامی در ذهن شما باقی نخواهد ماند.