اذهب إلى المحتوى

السؤال

نشر

لدي ملفين بايثون وأريد أن أقوم بإستدعاء الأول في داخل الثاني حتى أتمكن من إستخدام الدوال والمتغيرات الموجدة فيه، وبنيه الملفات كالتالي:

projects
|── blog
|   |── helpers
|       |── files.py
|── dashboard
    |── helpers
        |── all.py

كيف أقوم بإستدعاء الملف files.py من داخل الملف all.py؟

Recommended Posts

  • 0
نشر (معدل)

هناك عدة طرق للقيام بذلك لكن أسهلها أن تقوم بوضع الملفين في نفس المسار (نفس المجلد) 
ثم ببساطة اكتب من داخل الملف all.py التعليمة * from files import

على سبيل المثال هنا لدي ملفين الأول reg والثاني un وفي الملف reg يوجد تابع  اسمه  sigmoid فقمت باستدعاءه من داخل الملف un  بهذه الطريقة.
وأنصحك بالتعامل مع محرر الأكواد  جوبيتر فهو يجعل  كل هذه الأمور أسهل

2021-05-30_20h03_57.png

2021-05-30_20h03_47.png

تم التعديل في بواسطة Ali Haidar Ahmad
  • 0
نشر

هناك عدة طرق لعمل ذلك منها: إستدعاء الوحدة module الذي تسمى ب sys بإستخدام إحدى الوظيفتين

ويتم تحديد المسار على حالتين إما يكون المسار كامل absolute أو يكون المسار نسبي أو ذو صلة relative

فالمسار المطلق أو الكامل absolute نبداء بالجذر root أي بهذه الإشارة / مثل

/projects/blog/helpers

إذا كان المجلد projects في الجذر وهنا تكمن مشكلة بحيث يجب علينا أن نقوم بتحديد المسار كاملاً

أما المسار النسبي relative فهو تحديد المسار نسبياً للمكان الذي نحن فيه ولا يجب أن نعرف المسار الكامل absolute ، فإذا أردنا الوصول الى مسار files.py من مسار all.py بإستخدام المسار النسبي فيمكننا كتابة المسار هكذا

../../blog/helpers

أما كيفية إستدعائه في بايثون فهناك عدة طرق وسنستخدم المسار النسبي لأنه أفضل عندما لايكون لدينا المسار الكامل

1- sys.path.append كما في الكود

import sys
sys.path.append('../../blog/helpers')
import files

2- sys.path.insert كما في الكود

import sys
sys.path.insert(1,'../../blog/helpers')
import files

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...