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

 

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

 


 

نوشتن و وارد کردن(import) ماژول ها در پایتون

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

 

از محیط برنامه نویسی Python 3، بیایید با ایجاد یک فایل hello.py شروع کنیم که بعداً به یک فایل دیگر وارد می کنیم.

# hello.py

# Define a function
def world():
    print("Hello, World!")

 

اگر برنامه را روی خط فرمان با python hello.py اجرا کنیم ، هیچ اتفاقی نمی افتد ، زیرا به برنامه نگفته ایم که کاری انجام دهد.

 

بیایید یک فایل دوم در همان دایرکتوری به نام main_program.py ایجاد کنیم تا بتوانیم ماژولی را که ایجاد کرده ایم import کنیم و سپس تابع را فراخوانی کنیم. این فایل باید در یک دایرکتوری باشد تا پایتون بداند ماژول را از کجا پیدا کند زیرا ماژول داخلی نیست.

# main_program.py

# Import hello module
import hello


# Call function
hello.world()

 

از آنجا که ما یک ماژول را وارد می کنیم ، باید با ارجاع نام ماژول در نماد نقطه تابع را فراخوانی کنیم. در عوض ما می توانیم ماژول را با from hello import world وارد کنیم و عملکرد را مستقیماً به عنوان world () فراخوانی کنیم.

 

اکنون می توانیم برنامه را در خط فرمان اجرا کنیم:

$ python main_program.py

 

وقتی این کار را انجام می دهیم ، خروجی زیر را دریافت می کنیم:

Hello, World!

 

برای مشاهده نحوه استفاده از متغیرها در یک ماژول ، بیایید یک تعریف متغیر در فایل hello.py خود اضافه کنیم:

# hello.py

# Define a function
def world():
    print("Hello, World!")

# Define a variable
shark = "Sammy"

 

بعد ، ما متغیر را در یک تابع print () در فایل main_program.py خود فراخوانی می کنیم:

# main_program.py

# Import hello module
import hello


# Call function
hello.world()

# Print variable
print(hello.shark)

 

پس از اجرای مجدد برنامه ، خروجی زیر را دریافت می کنیم:

Hello, World!
Sammy

 

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

# hello.py

# Define a function
def world():
    print("Hello, World!")

# Define a variable
shark = "Sammy"


# Define a class
class Octopus:
    def __init__(self, name, color):
        self.color = color
        self.name = name

    def tell_me_about_the_octopus(self):
        print("This octopus is " + self.color + ".")
        print(self.name + " is the octopus's name.")

 

اکنون کلاس را به انتهای فایل main_program.py اضافه می کنیم:

# main_program.py

# Import hello module
import hello


# Call function
hello.world()

# Print variable
print(hello.shark)

# Call class
jesse = hello.Octopus("Jesse", "orange")
jesse.tell_me_about_the_octopus()

 

هنگامی که کلاس Octopus را با hello.Octopus () فراخوانی کردیم ، می توانیم به توابع و ویژگی های کلاس در فضای نام فایل main_program.py دسترسی پیدا کنیم. این به ما امکان می دهد jesse.tell_me_about_the_octopus () را در آخرین خط بدون hello بنویسیم. برای مثال ، می توانیم یکی از ویژگی های کلاس مانند jesse.color را بدون اشاره به نام ماژول hello فراخوانی کنیم.

 

وقتی برنامه را اجرا می کنیم ، خروجی زیر را دریافت می کنیم:

Hello, World!
Sammy
This octopus is orange.
Jesse is the octopus's name.

 

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

# hello.py

# Define a function
def world():
    print("Hello, World!")

# Call function within module
world()

 

ما سایر تعاریف موجود در ماژول را نیز حذف کرده ایم.

 

اکنون ، در فایل main_program.py ما ، هر خط را به جز دستور import حذف می کنیم:

# Import hello module
import hello

 

وقتی main_program.py را اجرا می کنیم خروجی زیر را دریافت می کنیم:

Hello, World!

 

این به این دلیل است که ماژول hello تابع world () را پیاده سازی کرده و سپس به main_program.py منتقل می شود و هنگام اجرای main_program.py اجرا می شود.

 

ماژول یک فایل برنامه پایتون است که از تعاریف یا کدی تشکیل شده است که می توانید از آن در سایر فایل های برنامه پایتون استفاده کنید.

 


 

دسترسی به ماژول ها از دایرکتوری دیگر

 

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

 

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

 

اضافه کردن مسیرها

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

 

برای افزودن مسیر یک ماژول به یک فایل برنامه نویسی دیگر ، ابتدا با وارد کردن ماژول sys در کنار سایر ماژول هایی که می خواهید در فایل اصلی برنامه خود استفاده کنید ، وارد کنید.

 

اگر با ماژول sys آشنا نیستید، پیشنهاد میکنیم ویدیو آموزش ماژول sys در پایتون را ببینید.

 

ماژول sys بخشی از کتابخانه استاندارد پایتون است و پارامترها و عملکردهای خاص سیستم را ارائه می دهد که می توانید در برنامه خود از آنها برای تعیین مسیر ماژول مورد نظر خود استفاده کنید.

 

به عنوان مثال ، فرض کنید ما فایل hello.py را منتقل کردیم و اکنون در مسیر/usr/sammy/است در حالی که فایل main_program.py در دایرکتوری دیگری قرار دارد.

 

در فایل main_program.py ما هنوز می توانیم ماژول hello را با وارد کردن ماژول sys و سپس افزودن/usr/sammy/به مسیری که پایتون برای فایل ها بررسی می کند ، وارد کنیم.

 

import sys
sys.path.append('/usr/sammy/')

import hello
...

 

تا زمانی که مسیر فایل hello.py را به درستی تنظیم کرده باشید ، می توانید فایل main_program.py را بدون خطا اجرا کرده و خروجی مشابه بالا را هنگامی که hello.py در یک پوشه قرار داشت دریافت کنید.

 

 

اضافه کردن ماژول به مسیر پایتون

 

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

 

برای اینکه بدانید پایتون چه مسیری را بررسی می کند ، مترجم پایتون را از محیط برنامه نویسی خود اجرا کنید:

$ python3

 

بعد ، ماژول sys را وارد کنید:

>>> import sys

 

سپس از پایتون بخواهید مسیر سیستم را چاپ کند:

>>> print(sys.path)

 

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

'/usr/sammy/my_env/lib/python3.5/site-packages'

 

اکنون می توانید فایل hello.py خود را به آن پوشه منتقل کنید. پس از اتمام کار ، می توانید ماژول hello را به طور معمول وارد کنید:

import hello
...

 

وقتی برنامه خود را اجرا می کنید ، باید بدون خطا کامل شود.

 

تغییر مسیر ماژول شما می تواند اطمینان حاصل کند که می توانید بدون درنظر گرفتن اینکه در چه پوشه ای هستید به ماژول دسترسی پیدا کنید. این امر به خصوص در صورتی مفید است که بیش از یک پروژه به یک ماژول خاص اشاره داشته باشد.



0

Intro

10:38

رایگان

1

Variable

12:30

رایگان

2

String

19:22

رایگان

3

List

8:46

رایگان

4

While

9:6

رایگان

5

If

8:37

رایگان

6

For

6:12

رایگان

7

range

4:17

رایگان

8

break, continue, pass

9:15

رایگان

9

Function

12:32

رایگان

10

List methods

12:11

رایگان

11

Tuple

8:29

رایگان

12

Set

7:47

رایگان

13

Dictionary

9:19

رایگان

14

Module

10:40

رایگان

15

fstring

5:35

رایگان

16

format

7:34

رایگان

17

File

17:14

رایگان

18

Scope

6:25

رایگان

19

OOP

12:15

رایگان

20

Method

20:19

رایگان

21

class/instance variable

14:7

رایگان

22

class/static method

13:25

رایگان

23

Inheritance

17:6

رایگان

24

Special methods

9:50

رایگان

25

Access points

11:12

رایگان

26

property

6:54

رایگان

27

Exceptions

21:17

رایگان

28

Standard library

12:51

رایگان

29

Docstring

10:49

رایگان

30

Virtualenv

11:2

رایگان

دوره های پیشنهادی

دوره آموزش Descriptors در پایتون
دوره آموزش Descriptors در پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش ساخت Forum با فلسک
دوره آموزش ساخت Forum با فلسک
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش دیتابیس Neo4j
دوره آموزش دیتابیس Neo4j
تکمیل ضبط
امیرحسین بیگدلو



ارسال نظر


بهنام شیخ محمدی

11 ماه قبل پاسخ به نظر

سلام ، وقت بخیر
یه سوال داشتم
فرمودید * استفاده نکنیم چون بهینه نیست با توچه به ماژول
می خوام بدونم وقتی ماژول ایمپورت می کنیم مثل کد زیر
import test
به همان اندازه ستاره غیر بهینه هستش، یعنی این مدلی انگار همه محتوای داخل ماژول ایمپورت کردیم یا نه فقط اون چیزهایی استفاده می کنیم ایمپورت شدن
تشکر از شما

ارسال نظر



امیرحسین بیگدلو

11 ماه قبل

سلام
خیر، در این حالت، فقط ماژول اضافه میشه نه محتویات. این روش بهترین روش برای ایمپورت هست

زهره

1 سال قبل پاسخ به نظر

سلام.
انصافا بعد از دیدن هر ویدئو آموزشی خوبتون دلم نمیاد تشکر نکنم. ممنون.

ارسال نظر



آرین

1 سال قبل پاسخ به نظر

سلام وقت شما بخیر.
من pycharm رو ندارم و نمتونم دانلودش کنم.
برای همین من ا همون محیط پایتون استفاذه میکنم و وقتی یه میام یه ماژول باهاش درست کنم نمیتونم توی جای دیگه importکنم.
این خیلی اذیت میکنه چون من میخوام پایتون رو یاد بگیرم ولی این مشکل جلومو گرفته.لطفا کمک کنید.
با تشکر

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
ماژول پایتون یک فایل ساده هست که پسوند py. داره. شما حتما نیاز نیست که از پایچارم استفاده کنید تا بتونید ماژول ایجاد بکنید.
میتونید از ابزارهای دیگه مثل notepad یا sublime یا atom استفاده کنید.

mashk

1 سال قبل پاسخ به نظر

سلام - من خیلی تازه کارم. میدیدم ماژولها چیز خاصی ندارن (بیشتر کدنبال کاربردشون بودم) و فکر نمیکردم تا این حد میشه ساده توضیحش داد(«هر فایل پایتونی با پسوند داتپای یک ماژوله») - ممنونم (باز هم فکر میکنم تو این کار استعداد دارید)

ارسال نظر



عماد

1 سال قبل پاسخ به نظر

سلام
توی جنگو مینونیم بنویسی from . import x
در این حال عادی پایتون وقتی میزنم from .
اررور میده
چجوری میشه از . تو خود پایتون استفاده کرد ؟

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
نقطه به معنی همین دایرکتوری هست که داخلش هستیم.
نیازی ندارید که از . from استفاده کنید. اگر میخواید یک ماژول رو ایمپورت کنید فقط بنویسید: import my_module
اگر میخواید از یک ماژول کلاسی رو ایمپورت کنید بنویسید:
from my_module import klass


عماد

1 سال قبل

بله اینو میدونم که نیازی ندارم - منتها تو جنگو میشه dot زد
اینجا نمیشه و ارور میده
خواستم بپرسم چرا اینجا نمیشه اونجا میشه ؟ کار اضافه تری باید بکنیم تا بشه dot هم زد ؟


امیرحسین بیگدلو

1 سال قبل

این لینک رو بخون
https://stackoverflow.com/questions/16981921/relative-imports-in-python-3

عماد

1 سال قبل پاسخ به نظر

سلام
خداقوت. میدونم سرتون خیلی شلوغه ولی یه مساله ای ذهنمو خیلی درگیر کرده
یه ماژول کامپایل شده به نام fontforge دانلود و نصب کردم ولی در پایتون اصلی اونو نمیشناسه! این ماژول ها رو چجوری باید نصب کنیم؟
پیشاپیش ممنون از زحمات شما

ارسال نظر



Shirin

2 سال قبل پاسخ به نظر

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

ارسال نظر



سینا

2 سال قبل پاسخ به نظر

ناموسا ویدیو تدریسی عالی بودمن خیلی سخت کامنت میزارم ولی این واقعاااا حقت بود دمت گرم

ارسال نظر



باب

3 سال قبل پاسخ به نظر

نحوه ی تدریس عالیه

ارسال نظر



مونگارد