• 0

لماذا هذا السطر (“test” is “test”) صحيح في بايثون؟

لماذا هذا السطر "test" is "test" == True صحيح في بايثون؟ هل السلاسل النصية تُخرن في نفس المكان في ذاكرة؟ لأن is للتأكد من الموقع في الذاكرة -على حد عملي- فماذا اختبار السلسلتين النصيتين صحيح؟

تمّ تعديل بواسطة Blackhacker

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


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

لا، لا يتم تخزين السلاسل النصية في نفس المكان في ذاكرة إلا في بضعة حالات محددة، ففي بايثون (كما في لغات جافا و سي وسي بلس بلس و.NET) يتم الجمع بين السلاسل النصية المتشابهة ويتم وضعها في مكان واحدة، فالمترجم سيعرف أن "test” هي "test” وسيخزنهما في نفس المكان في ذاكرة.

كما أنه ناتج هذه الاختبار صحيح أيضا: "tes"+"t" is "test".

 

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


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

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

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

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


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

تسجيل الدخول

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


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