Python Modules

مدول چیست؟

مدول را همان یک کتابخانه کد (code library) در نظر بگیرید. فایلی که شامل مجموعه‌ای از توابع است که شما می‌خواهید از آن‌ها در اپلیکیشن خود استفاده کنید.

ساختن یک مدول

برای ساختن یک مدول کافی است که کد نوشته شده را در یک فایل با پسوند py. ذخیره کنید.

برای مثال کد زیر را در یک فایل به اسم mymodule.py ذخیره می‌کنیم.

def greeting(name):
    print("Hello, " + name)

استفاده از مدول

الان با استفاده از دستور import می‌توانیم از مدولی که ساخته‌ایم استفاده کنیم.


import mymodule

mymodule.greeting("Jonathan")

خروجی:

زمانی که می‌خواهید از تابع داخل یک مدول استفاده کنید از نوشتار: module_name.function_name استفاده نمائید.

متغیرها در مدول

در مدول می‌توانیم هر چیزی داشته باشیم. به عنوان مثال در مدول زیر متغیر person1 را داریم که نوع آن دیکشنری است ولی هر نوع داده‌ی دیگری نیز می‌توانیم داشته باشیم.

person1 = {
    "name": "John",
    "age": 36,
    "country": "Norway"
}

حال از مدول ساخته شده می‌توان استفاده و به متغیر person1 دسترسی داشته باشیم.


import mymodule

a = mymodule.person1["age"]
print(a)

خروجی:

نامگذاری مدول

اسم مدول را می‌توانید به دلخواه خود انتخاب کنید. اما اسم فایل حتماً باید دارای پسوند py. باشد.

تغییر اسم مدول

می‌توانید یک اسم مستعار (alias) برای مدول خود در هنگام استفاده از آن با کمک کلیدواژه as انتخاب کنید.


import mymodule as mx

a = mx.person1["age"]
print(a)

خروجی:

مدول‌های داخلی

همراه با پایتون یک سری مدول‌ها وجود دارند که هر زمان بخواهید می‌توانید آن‌ها را وارد کد خود کرده و استفاده نمائید.

برای نمونه در کد زیر مدول platform را وارد و از آن استفاده می‌کنیم.


import platform

x = platform.system()
print(x)

خروجی:

استفاده از تابع ()dir

این تابع همراه با پایتون وجود دارد و تمام توابع و متغیرهای موجود در مدول را لیست می‌کند.


import platform

x = dir(platform)
print(x)

خروجی:

تابع dir() را می‌توان روی همه مدول‌ها به کار برد از جمله مدول‌هایی که خودتان ساخته‌اید.

وارد کردن از مدول

شاید تصمیم بگیرید که تنها بخشی از مدول را در کد خود استفاده کنید. در این حالت با استفاده از کلیدواژه from بخش مورد نظر را وارد کد خود می‌کنیم.

در مدول زیر یک تابع و یک دیکشنری داریم.

def greeting(name):
    print("Hello, " + name)

person1 = {
    "name": "John",
    "age": 36,
    "country": "Norway"
}

در کد زیر می‌خواهیم تنها از دیکشنری person1 استفاده کنیم.


from mymodule import person1

print (person1["age"])

خروجی:

هنگامیکه از کلیدواژه from جهت وارد کردن استفاده می‌کنید، دیگر لازم نیست هنگام ارجاع به عناصر موجود در مدول اسم مدول را به کار ببرید. برای مثال: person1["age"] و نه mymodule.person1["age"]