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

السؤال

نشر

هل يوجد فرق بين إستعمال import module أو from module import؟ أليس كلا الطريقتين يقومان بتحميل الدوال المستخدمة فقط وليس كل المكتبة؟

أحيانًا أستعمل الطريقة الأولى وأحيانًأ أخرى استعمل الطريقة الثانية، ومع ذلك لم ألاحظ أي إختلاف بينهما (بغض النظر عن كيفية استعمال الدالة المستدعاة بعد ذلك)

متى أستعمل كلًا منهما؟

Recommended Posts

  • 1
نشر (معدل)

عندما تستخدم import module مثلاً import sklearn تكون قد قمت باستيراد كامل المكتبة (بكل الموديول التي فيها وبالتالي بكل الكلاسات وكأنك قمت بتعريف قبضة يمكنها مسك أي شيء داخل المكتبة) وبالتالي يصبح بإمكانك استداعاء أي شيء منها عن طريق ذكر اسم المكتبة ثم اسم الموديول ثم اسم الكلاس ووضع نقطة بينهم.
مثال:

#seaborn قمت باستداعاء المكتبة
import seaborn 
#heatmap من خلال اسم المكتبة أستطيع الوصول إلى الدالة المعرفة بداخلها التي تسمى
seaborn.heatmap(c, center = True)
# ويمكننا اعطاء اسم محتصر للمكتبة كالتالي
import seaborn as sea
sea.heatmap(c, center = True)

مثال:

#sklearn قمت باستيراد مكتبة 
import sklearn
#metrics الموجود داخل الموديول confusion_matrix أريد الآن استخدام الكلاس
c = sklearn.metrics.confusion_matrix(y_test, clf.predict(X_test))
# لاحظ كيف كتبنا اسم المكتبة ثم الموديول ثم الكلاس

أما في حالة استخدمنا الطريقة الثانية فنكون قد قمنا باستيراد شيء محدد من المكتبة أو الموديول ولانكون قد استوردنا غيره أي وكأنك عرفت قبضة على جزء محدد من المكتبة.
مثال

#sklearn الموجود في مكتبة metrics من الموديول  confusion_matrix هنا قمنا باستيراد ال 
from sklearn.metrics import confusion_matrix
c = confusion_matrix(y_test, clf.predict(X_test))
#matplotlibالموجود ضمن المكتبة pyplot الآن مثال آخر حيث سنستورد كل مابداخل الموديول 
from matplotlib import pyplot
# pyplot وبالتالي أصبح بإمكانك الوصول لكل مايداخل الموديول
#show مثلاً أريد الوصول للتابع
pyplot.show()

:

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

نعم ليس هناك فرق كبير في الأداء بين الطريقتين حيث أن ال module يتم إستدعائه في كلا الطريقتين لذلك يمكنك استخدام الطريقة التي تفضلها فمثلاً

  • الطريقة الأولى لا تحتاج لأكثر من Import لاستخدام عدة دوال بينما في الطريقة الثانية تحتاج لذلك 
  • في الطريقة الأولى عند استخدام دالة تحتاج للوصول لها كالتالي module.method مما قد تبدو ممله بينما في الطريقة الثانية لا تحتاج لذلك

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

 

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...