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

السؤال

نشر

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

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

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

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

Recommended Posts

  • 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

المصدر

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...