• 0

ما الفرق بين print وsys.stdout.write() في لغة بايثون؟

هل هنالك فرق بين print ودالة sys.stdout.write() في لغة بايثون؟ وهل هنالك حالات يتم تفضيل استخدام واحدة على الأخرى؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

نعم هنالك فرق كبير بين print (دالة print() في الإصدار الثالث للبايثون) ودالة sys.stdout.write()، فـ print تقوم بأشياء أكثر من دالة sys.stdout.write() فهي تحوّل أولًا الكائن/الكائنات الممررة إلى سلسلة نصية (إذا لم يكونوا سلاسل نصية) وستضيف فراغ قبل الكائن إذا لم يكن بداية السطر وستضع رمز السطر الجديد (newline) في النهاية.
أما في حالة ما استخدمت stdout فيجب عليك أن تقوم بكل شيء بنفسك، فتحتاج مثلا إلى تحويل الكائن إلى سلسلة نصية وإضافة رمز سطر جديد … إلخ.
فهذا السطر:

print 99

يساوي هذا السطر في حالة استخدام stdout:

import sys
sys.stdout.write(str(99) + '\n')

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن