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

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

TheProgrammer

السؤال

أعرف أن لكل شيء وظيفة محددة في البايثون ولن أجد أي شيئين متشابهين في طريقة عملهم في البايثون(سواء كان دالة، تعليمة برمجية …) لكنني لم أفهم الفرق بين == و 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...