ماژول در پایتون

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Aug 24, 2020

ماژول ها Modules

ماژول در پایتون قطعاتی از کد هستند که افراد دیگر برای انجام وظایف مشترک مانند تولید اعداد تصادفی، انجام عملیات ریاضی و غیره نوشته اند. راه اصلی برای استفاده از یک ماژول، افزودن import module_name در بالای کد خود است و سپس با استفاده از module_name.var برای دسترسی به توابع و مقادیر با نام var در ماژول است. به عنوان مثال، در مثال زیر از ماژول random برای تولید اعداد تصادفی استفاده می کند:

import random

for i in range(5):
   value = random.randint(1, 6)
   print(value)

خروجی:

>>>
2
3
6
5
4
>>>

نکته:کد از تابع randint تعریف شده در ماژول تصادفی برای چاپ 5 عدد تصادفی در محدوده 1 تا 6 استفاده می کند. نوع دیگری از حالت import وجود دارد و برای زمانی است که شما می خواهید یک تابع خاص از ماژول را مورد استفاده قرار دهید. مدل استفاده آن به شکل from module_name import var خواهد بود که var تابع داخل ماژول را مشخص می کند.

from math import pi

print(pi)

خروجی:

>>>
3.141592653589793
>>>

همچنین می توانید از comma باری جدا سازی توابع بهره ببرید.

from math import pi, sqrt

نکته:* همه اشیا را از یک ماژول وارد می کند. به عنوان مثال:from math import * این کار توصیه شده است، زیرا متغیرها را در کد خود با متغیرهای موجود در ماژول خارجی اشتباه می گیرد. تلاش برای وارد کردن یک ماژول که در دسترس نیست، باعث ایجاد کردن خطا می شود.

import some_module

خروجی:

>>>
ImportError: No module named 'some_module'
>>>

شما می توانید یک ماژول یا یک شی را تحت نام دیگری با استفاده از کلمه کلیدی وارد کنید. این عمدتا زمانی مورد استفاده قرار می گیرد که یک ماژول یا یک شیء دارای نام طولانی یا گیج کننده است. مثلا:

from math import sqrt as square_root
print(square_root(100))

خروجی:

>>>
10.0
>>>
ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
8دیدگاه
  • abtin shadi
    2 years ago

    سلام
    برای نصب pyaudio این ارور رو بهم میده
    ERROR: Command errored out with exit status 1:
    command: 'c:\python39\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\SHP\\AppData\\Local\\Temp\\pip-install-pnklflbt\\pyaudio_247930981a9046c1a4021849536b7915\\setup.py'"'"'; __file__='"'"'C:\\Users\\SHP\\AppData\\Local\\Temp\\pip-install-pnklflbt\\pyaudio_247930981a9046c1a4021849536b7915\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\SHP\AppData\Local\Temp\pip-record-w3tdlsx0\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\python39\Include\PyAudio'
    cwd: C:\Users\SHP\AppData\Local\Temp\pip-install-pnklflbt\pyaudio_247930981a9046c1a4021849536b7915\
    Complete output (9 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.9
    copying src\pyaudio.py -> build\lib.win-amd64-3.9
    running build_ext
    building '_portaudio' extension
    error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
    ----------------------------------------
    ERROR: Command errored out with exit status 1: 'c:\python39\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\SHP\\AppData\\Local\\Temp\\pip-install-pnklflbt\\pyaudio_247930981a9046c1a4021849536b7915\\setup.py'"'"'; __file__='"'"'C:\\Users\\SHP\\AppData\\Local\\Temp\\pip-install-pnklflbt\\pyaudio_247930981a9046c1a4021849536b7915\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\SHP\AppData\Local\Temp\pip-record-w3tdlsx0\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\python39\Include\PyAudio' Check the logs for full command output.

    • علی بیگدلی
      2 years ago

      با استفاده از pipwin نصبش کن

  • arsalan
    2 years, 3 months ago

    تفاوت
    import math
    و
    for math import *
    چیه؟

    • علی بیگدلی
      2 years, 3 months ago

      ویدئو مربوط به این بخش برای توضیح همین موضوع هستش ولی در کل
      وقتی یک ماژول رو به طور کلی میارید باید به کلاسش اشاره کنید و در نهایت پس از اون به attribute های داخلیش و یا متد هاش
      اما وقتی به صورت * اضافه می کنید نیازی به نام بردن کلاس مادر نیست

  • Tah
    2 years, 3 months ago

    as یعنی چی؟

    • علی بیگدلی
      2 years, 3 months ago

      یعنی به معنی اینکه
      در حقیقت از as برای تغییر نامگذاری ماژول و یا استفاده از یک تابع وابسته ولی با نام دیگه استفاده میشه

  • masoud az
    2 years, 6 months ago

    khoob bood

    • علی بیگدلی
      2 years, 6 months ago

      متشکرم