پرسش

چطور می‌تونم فایل‌های پایتون دیگه رو وارد (import) کنم؟

How do I import other Python files?

من یک پروژه پایتونی دارم که از چندین فایل مختلف تشکیل شده. مثلاً یه فایل اصلی دارم به نام main.py و یه سری فایل‌های دیگه که توشون یه سری توابع تعریف کردم. حالا سوالم اینه که چطوری می‌تونم این فایل‌های جانبی رو داخل فایل اصلی (main.py) وارد کنم و از توابعشون استفاده کنم؟

1403/06/05
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

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

  1. استفاده از import

فرض کن یه فایلی به اسم helper.py داری که توش یک تابع به نام greet تعریف شده. برای وارد کردن و استفاده از این تابع در فایل اصلیت (مثلاً main.py) می‌تونی از این روش استفاده کنی:

# helper.py
def greet(name):
    return f"Hello, {name}!"
# main.py
import helper
print(helper.greet("World"))

توی این روش، با import helper کل فایل helper.py رو وارد کردی و حالا می‌تونی به تابع greet با استفاده از helper.greet دسترسی داشته باشی.

  1. استفاده از from ... import ...

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

# main.py
from helper import greet
print(greet("World"))

با این روش، فقط تابع greet رو از helper.py وارد کردی و دیگه نیازی به نوشتن helper. قبل از greet نداری.

  1. استفاده از import ... as ...

اگر نام فایل یا ماژول وارد شده خیلی طولانیه یا می‌خوای یه نام مستعار براش بذاری، می‌تونی از as استفاده کنی:

# main.py
import helper as h
print(h.greet("World"))

اینجا از h به جای helper استفاده کردی تا کد خواناتر بشه.

  1. وارد کردن فایل‌های داخل فولدر (پکیج)

اگر فایل‌هات داخل یه فولدر هستن، می‌تونی از روش‌های بالا به همراه اسم فولدر استفاده کنی. فقط دقت کن که توی فولدر یه فایل خالی به نام __init__.py بسازی (این فایل می‌تونه خالی باشه) تا پایتون اون فولدر رو به عنوان پکیج بشناسه:

# project/
#   mypackage/
#     __init__.py
#     helper.py
#   main.py
# main.py
from mypackage import helper
print(helper.greet("World"))
پاسخ: 1403/06/05
آخرین آپدیت: 1403/08/06