ویدیو رفع خطای circular import در پایتون


خطای Circular Import زمانی رخ میدهد که دو یا چند فایل پایتون به صورت متقابل همدیگر را ایمپورت کنند. مثلاً فایل amir.py داخلش hooshang.py را ایمپورت کرده و همزمان hooshang.py هم amir.py را. این باعث میشود پایتون در حلقه بینهایت گیر کند و خطا بدهد.
دلیل خطا Circular Import
وقتی پایتون بخواهد یکی از این فایلها را اجرا کند، به دنبال وارد کردن فایل دوم میرود، اما آن فایل هم به فایل اول نیاز دارد و این چرخه ادامه پیدا میکند.
راه حل اول: فایل واسط
توابع مشترک را در یک فایل سوم (مثلاً manager.py) قرار دهید. سپس در amir.py و hoshang.py فقط از manager.py ایمپورت کنید. اینجوری دیگر دو فایل مستقیم همدیگر را ایمپورت نمیکنند و خطا رفع میشود.
راه حل دوم: ایمپورت داخل تابع
ایمپورتها را به جای ابتدای فایل، داخل توابع بگذارید. این باعث میشود ماژولها فقط هنگام نیاز بارگذاری شوند و حلقه بینهایت ایجاد نشود.
نکته مهم خطا Circular Import
نام فایلها نباید با نام کتابخانههای نصبشده پایتون تداخل داشته باشد، چون باعث اشتباه در ایمپورت میشود.