دستور آوردن کتابخانه یا ماژول به برنامه
ماژول و کتابخانه چیست و چرا به آنها نیاز داریم؟
در دنیای برنامهنویسی، یک ماژول مانند یک جعبهٔ ابزار کوچک است که چندین دستور و تابع مرتبط را در خود جای داده است. مثلاً فرض کنید میخواهید در برنامهٔ خود تاریخ و زمان را محاسبه کنید. به جای اینکه خودتان بنویسید که هر ماه چند روز دارد و کبیسه را چگونه تشخیص دهید، میتوانید از ماژول «تاریخ و زمان» استفاده کنید که این کارها را برای شما انجام میدهد. به مجموعهٔ بزرگی از ماژولها که برای کارهای گوناگون نوشته شدهاند، کتابخانه میگویند.
دستور import دقیقاً مانند کلید ورود به این جعبههای ابزار است. وقتی این دستور را مینویسید، به برنامه میگویید: «من میخواهم از آن ابزارهایی که در آن ماژول هست استفاده کنم». این کار باعث میشود کد شما کوتاهتر، خواناتر و کمخطاتر شود؛ چون نیازی نیست تک تک دستورها را خودتان بنویسید.
برای روشنتر شدن موضوع، به مثال زیر توجه کنید:
عدد = math.sqrt(16)
چاپ(عدد) # خروجی: 4.0
در این مثال، ماژول math (ریاضی) را به برنامه آوردهایم تا بتوانیم از تابع جذر (sqrt) استفاده کنیم. بدون این دستور، برنامه نمیفهمد sqrt یعنی چه.
انواع روشهای آوردن ماژول به برنامه
روشهای مختلفی برای استفاده از دستور import وجود دارد که هرکدام برای موقعیت خاصی مناسب هستند. در جدول زیر این روشها را با هم مقایسه کردهایم:
| روش نوشتن | معنای آن | چه زمانی به کار میرود؟ |
|---|---|---|
| import math | همهٔ محتویات ماژول ریاضی آورده میشود | وقتی از چندین تابع آن ماژول استفاده میکنید |
| from math import sqrt | فقط تابع جذر از ماژول ریاضی آورده میشود | وقتی فقط به یک یا دو تابع خاص نیاز دارید |
| import math as m | ماژول ریاضی با نام کوتاهتر «م» آورده میشود | برای کوتاهتر کردن نام ماژول در کدهای طولانی |
| from math import * | همهٔ توابع ریاضی مستقیماً در دسترس هستند | توصیه نمیشود چون ممکن است نام توابع تداخل پیدا کند |
بهترین روش برای شروع، استفاده از import ساده است تا به تدریج با ماژولها آشنا شوید. وقتی تجربهٔ بیشتری پیدا کردید، میتوانید از روشهای دیگر برای خواناتر شدن کدتان استفاده کنید.
پرسشهای چالشی دربارهٔ دستور آوردن ماژول
این یک مشکل رایج است. اگر از from module1 import function و بعد from module2 import function استفاده کنید، تابع دوم جای تابع اول را میگیرد. برای جلوگیری از این کار، بهتر است از import module1 و import module2 استفاده کنید و سپس با نام ماژول، تابع را صدا بزنید؛ مثل module1.function().
دلیل اصلی این است که ماژول مورد نظر روی رایانهٔ شما نصب نیست. دستور import فقط ماژولهایی را میشناسد که از قبل در سیستم وجود داشته باشند. برای ماژولهای جدید، باید ابتدا آنها را نصب کنید (معمولاً با استفاده از ابزارهای مدیریت بسته). همچنین ممکن است نام ماژول را اشتباه نوشته باشید؛ چون حروف بزرگ و کوچک در نام ماژولها مهم است.
بله، دقیقاً! شما میتوانید توابع و متغیرهای مفید خود را در یک فایل جداگانه بنویسید و آن را به عنوان یک ماژول ذخیره کنید. سپس در برنامهٔ اصلی خود با دستور import آن فایل را به برنامه بیاورید. این کار یکی از اصول مهم مهندسی نرمافزار به نام «بازاستفاده از کد» است و به شما کمک میکند تا پروژههای بزرگتر را بهتر مدیریت کنید.
آنچه آموختیم: دستور import یکی از پرکاربردترین دستورها در برنامهنویسی است که به ما اجازه میدهد از کدهای آماده استفاده کنیم. ماژولها و کتابخانهها مانند جعبههای ابزاری هستند که کارهای تکراری و پیچیده را برای ما انجام میدهند. با روشهای مختلف آوردن ماژول آشنا شدیم و دیدیم که هرکدام چه کاربردی دارند. به یاد داشته باشید که استفادهٔ درست از این دستور، کد شما را تمیزتر، کوتاهتر و حرفهایتر میکند. همچنین فهمیدیم که میتوانیم ماژولهای شخصی خود را بسازیم و از آنها در پروژههای مختلف استفاده کنیم.