پکیج ها در پایتون (به زبان ساده)
[av_one_third first av_uid=’av-5imc11′]
آنچه در این جلسه خواهیم گفت :
- مفهوم پکیج ها در پایتون
- نحوه import کردن پکیج ها در پایتون
پیش نیازهای این جلسه :
[/av_one_third] [av_one_third av_uid=’av-2s6yat’]میزان پیشرفت در دوره
[skillwrapper type=”gage” align=”left”] [skill percent=”45″ title=”” bar_foreground=”#f00″ bar_background=”#eee”] [/skillwrapper] [/av_one_third]
پکیج ها در پایتون
ما اگر بخواهیم فایل های خود را در کامپیوتر ذخیره کنیم ، آنها را دسته بندی می کنیم و هر کدام را به صورت مرتب در محل هایی جداگانه قرار می دهیم. مثلا اگر یک پوشه به نام fun داریم که دارای فایل های زیادی است. میتوانیم آن ها را دسته بندی کنیم. مثلا آهنگ ها را در پوشه music، فیلم ها را در پوشه movie و … قرار می دهیم.
پایتون هم از ایده بالا استفاده می کند. به زبان ساده تر وقتی حجم برنامه ها از یک حدی بالاتر می روند ، ما ماژول هایی که شبیه به یکدگیر هستند را در یک پکیج قرار می دهیم و ماژول های متفاوت را در پکیج های متفاوت می گذاریم. با این کار مدیریت پروژه ساده تر می شود و راحتتر می توانیم اشکال برنامه ها را پیدا کنیم.
همانطور که یک فولدر میتوانید برای خودش یک زیرفولدر داشته باشد ، پکیج ها هم می توانند شامل زیرپکیج ها و ماژول ها باشند.
هر فولدر پکیج حتما باید دارای یک فایل به نام init__.py__ باشد تا پایتون متوجه شود که با یک پکیج روبرو است. این فایل میتواند یک فایل خالی باشد. اگر چه برخی از تنظیمات اولیه آن پکیج معمولا در آن فایل قرار داده می شود.
فرض کنید که ما میخواهیم یک بازی را به کمک پایتون بسازیم. یکی از حالت هایی که ما میتوانیم در آن پکیج ها و ماژول ها را سازماندهی کنیم ، در شکل زیر آورده شده است.
بیایید در مورد شکل بالا کمی بیشتر فکر کنیم.
در شکل بالا ابتدا یک فایل init__.py__ وجود دارد که به پایتون می گوید این فولدر (یعنی فولدر game) یک پکیج می باشد.
در کنار این فایل ما با سه فولدر دیگر نیز مواجه هستیم. این سه فولدر هر کدام خودشان یک پکیج هستند. پس باید یک فایل init__.py__ کنار خود داشته باشند ، که همین اتفاق نیز افتاده است.
در داحل این فولدرها دیگر ما با ماژول ها روبرو هستیم و عملا کدهای داخل این ماژول ها را ما در برنامه خود مورد استفاده قرار می دهیم.
مشاهده می کنید که به کمک تقسیم بندی بالا ، چقدر کدهای ما تمیز تر شدند و دارای ساختار شدند. حال اگر صدای آن بازی دچار مشکل شد ، ما میدانیم باید به کجا رجوع کنیم و مشکل احتمالا از کجاست.
روش import کردن یک ماژول از یک پکیج
با استفاده از عملگر dot ( . ) میتوانیم ماژول ها را از پکیج ها فراخوانی کنیم و به پکیج بگوییم که میخواهیم از فلان ماژول استفاده کنیم. این کار به چند روش امکان پذیر است.
روش اول : مشکل بالا اگر بخواهیم ماژول start را فراخوانی کنیم ، کافی است تا از دستور زیر استفاده کنیم :
import Game.Level.start
حال فرض کنید که این ماژول دارای تابعی به نام select_difficulty() باشد. برای استفاده از این تابع باید کل اسم پکیج ها و زیرپکیج ها آورده شود. یعنی :
Game.Level.start.select_difficulty(2)
که می بینید جالب نیست. در اینجاست که میتوانیم از روش دوم استفاده کنیم.
روش دوم : اگر بخواهیم از این کار خودداری کنیم ، کافی است تا از دستور form….import استفاده کنیم. یعنی :
from Game.Level import start
حال میتوانیم از این دستور به شکل زیر استفاده کنیم :
start.select_difficulty(2)
روش سوم : حالت سوم برای وقتی است که بخواهیم از خود تابع بدون هیچ پیشوندی استفاده کنیم. برای این کار کافی است تا خودنام تابع(یا کلاس یا متغیر) را مطابق زیر فراخوانی کنیم:
from Game.Level.start import select_difficulty
در این صورت برای استفاده از این تابع میتوانیم دستور زیر را بنویسیم :
select_difficulty(2)
اگر چه این روش آسان تر است ولی اصلا پیشنهاد نمی شود. مشخص کردن نام ماژول ها و پکیج ها باعث می شود تا احتمالا یکسان بودن متغیرها و نام توابع به صفر برسد. در غیر این صورت ممکن است با دو تابع با نام یکسان روبرو شوید که باعث ایجاد خطا در برنامه می شود.
سوال : کتابخانه matplotlib را بر روی سیستم خود نصب کنید و سپس از این کتابخانه ، پکیج pyplot که زیر پکیجی از پکیج matplotlib می باشد را به عنوان plt به برنامه اضافه کنید.
خوب دوستان. به پایان این جلسه رسیدیم. مثل همیشه میتوانید ما را در تلگرام و یا اینستاگرام دنبال کنید.
برای ثبت نام به عنوان عضو VIP ابتدا باید در سایت ثبت نام کلیک و سپس نسبت به افزایش اکانت خود اقدام فرمایید.
دیدگاهتان را بنویسید