• ارسال کننده: سمیه مظفری
  • تاریخ انتشار: 2020 / 01 / 26

ماژول در زبان برنامه نویسی پایتون چیست؟

مقاله قبلی: توابع ورودی و خروجی پایتون

هر چه برنامه ما بزرگ تر و بزرگ تر شود بهترین کار این است که برنامه را به بخش های های کوچک تر بشکنیم. این کار توسط ماژول های پایتون امکان پذیر است.

ماژول های پایتون را می توان همانند کتابخانه های (library) سایر زبان های برنامه نویسی تصور نمود. در حقیقت ماژول به فایلی گفته می شود که حاوی مجموعه ای از توابع، تعاریف و جملات پایتون است که می توانید در برنامه های خود از آن ها استفاده کنید. لذا به جای تعریف مکرر توابعی پر کاربرد خود در برنامه های مختلف، می توانید یک بار آن ها را در یک ماژول نوشته و هرگاه که لازم داشتید آن ماژول یا بخشی از آن را در برنامه خود وارد کنید. ماژول ها کمک می کنند تا بتوانیم برنامه های بزرگ را به برنامه های کوچکی که مدیریت آن ها آسان تر است بشکنیم ضمن این که قابلیت استفاده مجدد کدها را نیز افزایش می دهند.

نحوه ایجاد یک ماژول

برای ایجاد یک ماژول کافیست که کدهای خود را در یک فایل متنی نوشته و آن را با پسوند .py ذخیره کنید. شما می توانید برای ماژول خود هر نامی را که مد نظر دارید انتخاب کنید منتها پسوند این فایل الزاما باید .py باشد. مثلا ما ماژولی با نام mymodule تعریف کرده و تعریف تابع زیر را درون آن می نویسیم.

              

نحوه استفاده از یک ماژول

شما می توانید با استفاده از کلمه کلیدی import، تعاریف موجود در ماژولی که ایجاد نموده اید را در خط فرمان پایتون، برنامه های خود و یا در ماژول دیگر پایتون وارد کرد. حال برای دسترسی به توابع و متغیرهای ماژول مربوطه باید از نام ماژول به همراه عملگر نقطه (.) استفاده کنید. در این قسمت، ماژول ایجاد شده در مرحله قبل را در برنامه خود وارد می کنیم.

لازم است بدانید که ماژول های استاندارد موجود در خود پایتون هم به مانند ماژول های تعریف شده توسط کاربر وارد برنامه می شوند. برای مثال برای چاپ عدد pi، ابتدا بایستی ماژول math را توسط کلمه کلیدی import به برنامه خود وارد کنیم  و سپس از تابع print برای چاپ آن استفاده کنیم.

استفاده از متغیر در داخل ماژول ها

ماژول ها می توانند علاوه بر توابع، شامل متغیرهایی از انواع مختلف باشند مثلا می توانید به ماژول mymodule مثال فوق، دیکشنری زیر را اضافه کنید تا به هنگام وارد کردن این ماژول در برنامه خود، بتوانید از آن استفاده کنید.

عبارت from…import statement

در دو مثال قبل، با وارد کردن یک ماژول، تمامی تعاریف موجود در آن برای برنامه ما در دسترس می شد. اما اگر بخواهیم بجای کل یک ماژول، تنها بخشی از آن (توابع و خصوصیت های خاصی از این ماژول) را وارد برنامه خود بکنیم باید از کلمه کلیدی from به شکل زیر استفاده کنیم:

به عنوان مثالی دیگر، اگر بخواهیم در ماژول زیر که دارای یک تابع و یک دیکشنری است تنها از متغیر person1 آن استفاده کنیم به این صورت این متغیر را وارد برنامه خود می کنیم:

توجه : حتما توجه داشته باشید وقتی که از کلمه کلیدی from برای دسترسی به بخشی از یک ماژول استفاده می کنید دیگر از نام آن ماژول و عملگر نقطه استفاده نکنید. مثلا در قطعه کد بالا می بیند که بجای عبارت mymodule.person1[“age”]  از person1[“age”] استفاده نموده ایم.

علاوه بر این می توانید به جای یک خصوصیت، چندین خصوصیت از یک ماژول را وارد برنامه خود کنید.

تغییر نام یک ماژول

شما می توانید به هنگام وارد کردن ماژول خود در برنامه، توسط کلمه کلیدی as برای آن یک نام مستعار انتخاب کنید. همان طور که می بینید ما در مثال زیر، نام ماژول mymodule را به نام کوتاه تر mx  تغییر داده ایم چرا که این کار باعث صرفه جویی در زمان تایپ می شود.

ماژول های درون ساخته پایتون

چندین ماژول درون ساخته در پایتون وجود دارد که شما می توانید هر زمان که نیاز داشتید از آنها استفاده کنید. مثلا در قطعه کد زیر می بینید که تابع system موجود در ماژول platform پایتون، نوع سیستم عامل نصب شده بر روی سیستم ما را برمی گرداند.

محل ذخیره سازی ماژول های استاندارد پایتون

برای مشاهده لیست ماژول های استاندارد پایتون می توانید به پوشه lib موجود در محل نصب پایتون مراجعه کنید.

کارکرد تابع dir() در مورد ماژول ها

گاهی اوقات نیاز دارید بدانید که در داخل یک ماژول چه توابع و متغیرهایی وجود دارد. در چنین مواقعی می توانید از تابع dir() استفاده کنید و نام ماژول مورد نظر را به آن بفرستید.

کاربرد سمبل * در ماژول ها

با استفاده از علامت * می توانیم تمامی نام ها (تعاریف) موجود در یک ماژول را وارد برنامه خود کنیم این کار، همه نام ها به جز آن هایی که با علامت آندرلاین _ شروع می شوند را در اسکوپ مورد نظر ما قابل رویت می کند. اما با این وجود، استفاده از این سمبل در برنامه نویسی زیاد توصیه نمی شود چرا که مانع خوانایی کدها می شود.

مسیر جستجوی ماژول توسط مفسر پایتون

وقتی شما ماژولی را وارد برنامه خود می کنید مفسر پایتون ابتدا ماژول های درون ساخته و در صورت نیافتن، دایرکتوری های موجود در sys.path  را مورد جستجو قرار می دهد.

بارگذاری مجدد یک ماژول

فرض کنید ماژولی به نام my_module داریم که کد زیر درون آن قرار دارد.

حال در قطعه کد زیر، سه بار این ماژول را وارد برنامه خود می کنیم ملاحظه می کنید که عبارت داخل ماژول تنها یک بار اجرا می شود این بدان معناست که مفسر پایتون در یک session ، تنها یک بار یک ماژول را وارد می کند.

این بار فرض کنید که ماژول ما در طی اجرای برنامه دچار تغییراتی شود بنابراین مجبورید که آن را مجددا بارگذاری کنید. یکی از روش های این کار، راه اندازی مجدد مفسر پایتون است. اما این شیوه چندان معقول به نظر نمی رسد.

جالب است بدانید که پایتون برای حل این مشکل یک راهکار عالی دارد و آن استفاده از تابع reload ماژول imp است. ملاحظه می کنید که با اصلاح کد بالا به صورت کد زیر، می توانیم یک ماژول را بیش از یک بار در برنامه وارد کنیم ضمن این که دیگر از تغییرات بعدی اعمال شده در آن ماژول هم نگرانی نخواهیم داشت.

در این مقاله با نحوه ایجاد یک ماژول، نحوه استفاده از یک ماژول، استفاده از متغیر در داخل ماژول ها، عبارت from…import statement، تغییر نام یک ماژول، ماژول های درون ساخته پایتون، محل ذخیره سازی ماژول های استاندارد پایتون، کاربرد سمبل * در ماژول ها، مسیر جستجوی ماژول توسط مفسر پایتون، بارگذاری مجدد یک ماژول آشنا شدید در مقالات بعدی با ما همراه باشید.

ترجمه: رقیه آقایاری

مقاله بعدی: تابع چیست؟ انواع و نحوه ایجاد آن در پایتون

 

 

 

این محتوا اختصاصاً برای یاد بگیر دات کام تهیه شده است استفاده از آن با ذکر منبع همراه با لینک آن و نام نویسنده یا مترجم مجاز است
برچسب ها:



 

در یاد بگیر دات کام مشترک شوید و آخرین مطالب را در ایمیل خود دریافت نمایید

نظر شما چیست؟

پرسش های خود را در بخش پرسش و پاسخ مطرح کنید

محدودیت زمانی مجاز به پایان رسید. لطفا کد امنیتی را دوباره تکمیل کنید.




بستن تبلیغات

تبلیغات اینترنتی در یاد بگیر دات کام



صفحه ما را در فیس بوک دنبال کنید صفحه ما را در توییتر دنبال کنید صفحه ما را در  اینستاگرام دنبال کنید صفحه ما را در لینکداین دنبال کنید