hash() قيمة تجزئة الكائن
آخر تحديث: 2026-09-22
hash() قيمة تجزئة الكائن
hash() تُرجع قيمة تجزئة صحيحة للكائن (للكائنات القابلة للتجزئة)؛ الكائنات المتطابقة (a is b) لها بالتأكيد نفس قيمة التجزئة.
| التصنيف | الدوال المدمجة |
|---|---|
| النوع | دالة مدمجة |
| إصدار بايثون | all |
📝 الصياغة
hash(object)
⚙️ المعاملات
| object مطلوب | The object to hash; it must be hashable. |
|---|
القيمة المُعادة:The integer hash of the object; equal objects always hash equal.
💥 الاستثناءات
TypeError— Raised when the object is unhashable (e.g. list, dict, set).
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
529344067295497451
ℹ️ معلومة الحاويات غير القابلة للتغيير عادةً قابلة للتجزئة؛ list / set / dict غير قابلة للتجزئة.
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qلماذا يُثير hash([1, 2]) خطأ TypeError؟
Aالقائمة قابلة للتغيير — محتواها يمكن أن يتبدل — لذا لا يمكن أن يكون هاشها مستقرًا، وبالتالي غير قابل للهاش. وكذلك dict و set.
Qما الكائنات القابلة للهاش؟
Aالأنواع غير القابلة للتغيير عادةً تكون قابلة للهاش: int و float و str و bytes و tuple و frozenset و None وغيرها؛ لاحظ أن tuple يحتوي على قائمة فهو غير قابل للهاش أيضًا.
Qهل هاش الكائنات المتساوية متطابق دائمًا؟
Aنعم في اتجاه واحد: إذا كان a == b فإن hash(a) == hash(b). لكن العكس غير مضمون — قد تتصادم كائنات مختلفة على نفس الهاش (الهاش المتساوي لا يقتضي التساوي).
Qهل يبقى hash('abc') نفسه في كل تشغيل للبرنامج؟
Aليس بالضرورة. هاش السلاسل عشوائي افتراضيًا (PYTHONHASHSEED)، فلا يكون ثابتًا عبر العمليات؛ لا تستخدم قيم الهاش للحفظ الدائم أو النقل بين العمليات.