• 0

هل هنالك فرق بين == و is في بايثون؟

أعرف أن لكل شيء وظيفة محددة في البايثون ولن أجد أي شيئين متشابهين في طريقة عملهم في البايثون(سواء كان دالة، تعليمة برمجية …) لكنني لم أفهم الفرق بين == و is فكلتاهما تعطي نفس النتيجة كما في المثال التالي:

n = 5
# Test one.
if n == 5:
    print 'Yay!'

# Test two.
if n is 5:
    print 'Yay!'

فهل هنالك فرق بينهم؟

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


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

على الرغم من أنه يبدو أنه ليس هنالك أي فرق بين == و is إلا أن لكل واحد منهم وظيفة محددة، فمثلا == يستخدم للمقارنة بين القيم، فتُستخدم عندما تحتاج إلى معرفة ما إذا كان للكائنين نفس القيمة، أما is فهي تستخدم للمقارنة بين المراجع، فتُستخدم عندما تحتاج إلى معرفة إذا كان المرجعين  يشيران إلى نفس الكائن أو لا.
بشكل عام، إذا كنت تحتاج إلى مقارنة شيئين، ففي العادة سوف تستخدم == لأنك بحاجة إلى مقارنة بين قيمتين.
مثال بسيط حول الفرق بينهم:

>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True

المصدر

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


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

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

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

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


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

تسجيل الدخول

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


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