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

4 سال پیش

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

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، ایجاد و وارد کردن ماژول های برنامه نویسی پایتون را یاد خواهید گرفت. همچنین، تکنیک های مختلفی برای وارد کردن و استفاده از ماژول های سفارشی و ماژول ‌های توکار در پایتون راخواهید آموخت.

پیشنهاد ویژه : آموزش طراحی وب سایت با پایتون

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

ماژول ها به فایلی که حاوی عبارات و تعاریف پایتون باشد، گفته می شود.

به یک فایل حاوی کدهای پایتون، به عنوان مثال: example.py، یک ماژول گفته می شود و نام ماژول example می باشد.

ما از ماژول ها برای تجزیه برنامه های بزرگ به فایل های کوچک قابل مدیریت استفاده می کنیم. علاوه بر این، ماژول ها قابلیت استفاده مجدد از کد را فراهم می کنند.

ما می توانیم به جای کپی کردن تعاریف در برنامه های مختلف، پرکاربردترین توابع خود در یک ماژول تعریف کرده و آن را وارد کنیم.

بیایید ماژولی ایجاد کنیم. موارد زیر را تایپ کرده و آن را به عنوان example.py ذخیره کنیم.

# Python Module example

def add(a, b):
   """This program adds two
   numbers and return the result"""

   result = a + b
   return result

 

در اینجا، ما یک تابع ()add را در داخل ماژولی به نام example تعریف کرده ایم. این تابع دو عدد را جمع می بندد و مجموعه آن‌ ها را محاسبه می‌ کند.

چگونه ماژول ها را در پایتون وارد کنیم؟

می توانیم تعاریف داخل یک ماژول را در ماژول دیگری یا مفسر تعاملی (Interactive Interpreter) در پایتون وارد کنیم.

ما برای این کار از کلیدواژه import استفاده می کنیم. برای وارد کردن ماژول example که قبلاً تعریف شده است، دستور زیر را باید در خط فرمان پایتون وارد کرد.

>>> import example

 

این دستور نام تابع تعریف شده example را مستقیماً در جدول نماد (symbol table) فعلی وارد نمی کند. بلکه فقط نام ماژول example را در آنجا وارد می کند.

با استفاده از نام ماژول می توانیم به عملگر نقطه «.» دسترسی داشت.

به عنوان مثال؛

>>> example.add(4,5.5)
۹٫۵

 

پایتون دارای چندین و چند ماژول استاندارد است. می توانید لیست کامل ماژول های استاندارد پایتون و موارد استفاده از آنها را بررسی کنید. این پرونده ها در فهرست Lib directory در محلی که پایتون را نصب کرده اید قرار دارند.

ماژول های استاندارد را می توان به همان روشی که ماژول های تعریف شده توسط کاربر  را وارد می شوند، وارد کرد.

روش های مختلفی برای وارد کردن ماژول وجود دارد. که در ادامه به آن ها خواهیم پرداخت.

 

دستور Import در پایتون

ما می توانیم یک ماژول را با استفاده از دستور import وارد کنیم و با استفاده از عملگر نقطه همانطور که در بالا توضیح داده شد به تعاریف داخل آن دسترسی پیدا کنیم. به عنوان مثال.

# import statement example
# to import standard module math

import math
print("The value of pi is", math.pi)

 

خروجی

The value of pi is 3.141592653589793

 

وارد کردن ماژول ‌ها با تغییر نام در پایتون

ما می توانیم با تغییر نام ماژول به صورت زیر، آن ها را وارد کنیم:

# import module by renaming it

import math as m
print("The value of pi is", m.pi)

 

در این تغییر نام، ماژول math به m  تغییر نام داده ایم. این امر می تواند در بعضی موارد باعث صرفه جویی در وقت تایپ ما شود.

توجه داشته باشید که نام math در دامنه ما شناخته نشده است. از این رو ، math.pi نامعتبر است و m.pi نیز پیاده‌ سازی صحیح است.

 

استفاده از from … import در برنامه نویسی پایتون

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

# import only pi from math module

from math import pi
print("The value of pi is", pi)

 

در اینجا، ما فقط مشخصه pi را از ماژول math وارد کردیم.

در چنین مواردی، ما از عملگر نقطه استفاده نمی کنیم. همچنین می توان چندین مشخصه را به صورت زیر وارد کرد:

>>> from math import pi, e
>>> pi
۳٫۱۴۱۵۹۲۶۵۳۵۸۹۷۹۳
>>> e
۲٫۷۱۸۲۸۱۸۲۸۴۵۹۰۴۵

وارد کردن همه اسامی در پایتون

ما می توانیم همه اسامی (تعاریف) را از یک ماژول با استفاده از ساختار زیر وارد کنیم:

# import all names from the standard module math

from math import *
print("The value of pi is", pi)

 

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

وارد کردن همه چیز با علامت ستاره (*) روش برنامه نویسی خوبی نیست. این می تواند به تعریفهای تکراری برای شناساگر منجر شود. همچنین خوانایی کد را بسیار کم می کند.

 

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

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

جستجو به این ترتیب زیر است.

  • دایرکتوری فعلی
  • PYTHONPATH (یک متغیر محیطی با لیستی از دایرکتوری ها).
  • دایرکتوری پیش فرض وابسته به نصب
>>> import sys
>>> sys.path
['',
'C:\\Python33\\Lib\\idlelib',
'C:\\Windows\\system32\\python33.zip',
'C:\\Python33\\DLLs',
'C:\\Python33\\lib',
'C:\\Python33',
'C:\\Python33\\lib\\site-packages']

 

امکان اینکه مواردی را به لیست اضافه و یا اصلاح کنیم تا مسیر خود را اضافه کنیم، وجود دارد.

 

بارگیری مجدد یک ماژول در پایتون

مفسر پایتون یک ماژول را تنها یک ‌بار در طول یک جلسه کاری وارد می‌کند. این کار کارایی بیشتری را ایجاد می کند. در اینجا مثالی برای نشان دادن نحوه عملکرد آن آورده شده است.

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

# This module shows the effect of
#  multiple imports and reload

print("This code got executed")

 

خروجی

>>> import my_module
This code got executed
>>> import my_module
>>> import my_module

 

می توانیم ببینیم که کد ما فقط یک بار اجرا شده است. این نشان می دهد که ماژول ما فقط یک بار وارد شده است.

اکنون اگر ماژول ما در طول برنامه تغییر کند، باید آن را دوباره بارگیری کنیم. یکی از راه های انجام این کار، راه اندازی مجدد مفسر است. اما این کار خیلی کمک نمی کند.

پایتون روش کارآمدتری برای انجام این کار ارائه می دهد. برای بارگیری مجدد ماژول می توانیم از تابع ()reload درون ماژول imp استفاده کنیم. ما می توانیم این کار را به روش های زیر انجام دهیم:

>>> import imp
>>> import my_module
This code got executed
>>> import my_module
>>> imp.reload(my_module)
This code got executed
<module 'my_module' from '.\\my_module.py'>

 

 

تابع توکار ()dir در پایتون

ما می توانیم از تابع ()dir برای یافتن اسامی که در داخل ماژول تعریف شده اند، استفاده کنیم.

به عنوان مثال، ما یک تابع ()add  را در  ماژول example که در ابتدا داشتیم تعریف کرده ایم.

>>> dir(example)
['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__initializing__',
'__loader__',
'__name__',
'__package__',
'add']

 

در اینجا، می توانیم لیست مرتب شده ای از اسامی (همراه با add) را مشاهده کنیم. همه اسامی دیگری که با خط تیره شروع می شوند خصیصه‌ های پیش فرض پایتون مرتبط با ماژول هستند (توسط کاربر تعریف نشده اند).

به عنوان مثال ، خصیصه__name__ حاوی نام ماژول است.

>>> import example
>>> example.__name__
'example'

 

همه نام های تعریف شده در فضای نام فعلی ما را می توان با استفاده از تابع ()dir  بدون هیچ آرگومانی پیدا کرد.

>>> a = 1
>>> b = "hello"
>>> import math
>>> dir()
['__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter']

 

منبع.

لیست جلسات قبل آموزش برنامه نویسی پایتون

  1. آموزش نصب و اجرای برنامه نویسی پایتون
  2. کلیدواژه ها و شناسه های برنامه نویسی پایتون
  3. دستورات، تورفتگی ها و کامنت ها در برنامه نویسی پایتون
  4. متغیرها، ثابت ها و لیترال ها در برنامه نویسی پایتون 
  5. انواع داده ها در برنامه نویسی پایتون
  6. تبدیل نوع در برنامه نویسی پایتون
  7. ورودی، خروجی و وارد کردن در برنامه نویسی پایتون
  8. عملگرها در برنامه نویسی پایتون
  9. نام و دامنه در برنامه نویسی پایتون
  10. دستور شرطی if…else در برنامه نویسی پایتون
  11. حلقه for در برنامه نویسی پایتون
  12. حلقه while در برنامه نویسی پایتون
  13. دستورات break و continue در برنامه نویسی پایتون
  14. دستور pass در برنامه نویسی پایتون
  15. توابع در برنامه نویسی پایتون
  16. آرگومان تابع در برنامه نویسی پایتون
  17. تابع بازگشتی در برنامه نویسی پایتون
  18. تابع بی نام/ تابع لامبدا در برنامه نویسی پایتون
  19. متغیرهای سراسری، محلی و غیر محلی در برنامه نویسی پایتون
  20. کلیدواژه global در برنامه نویسی پایتون
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه