delattr() حذف خاصية كائن
آخر تحديث: 2026-09-22
delattr() حذف خاصية كائن
تحذف delattr(obj, name) الخاصية name من obj؛ وهي مكافئة لـ del obj.name.
| التصنيف | الدوال المدمجة |
|---|---|
| النوع | دالة مدمجة |
| إصدار بايثون | all |
📝 الصياغة
delattr(object, name)
⚙️ المعاملات
| object مطلوب | The object to delete the attribute from. |
|---|---|
| name مطلوب | The attribute name as a string. |
القيمة المُعادة:None.
💥 الاستثناءات
AttributeError— Raised when the attribute does not exist or cannot be deleted.TypeError— Raised when name is not a string.
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
False
🏷️ دوال مدمجة ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qما الفرق بين delattr(obj, 'x') و del obj.x؟
Aمكافئان تمامًا من الناحية الوظيفية. ميزة delattr أن اسم الخاصية يمكن أن يكون متغيرًا أو سلسلة ديناميكية، مناسبًا لسيناريوهات الحذف بالاسم.
Qماذا يحدث عند حذف خاصية غير موجودة؟
Aيُثار AttributeError، مثل del obj.nonexist تمامًا؛ استخدم hasattr() للفحص قبل الحذف.
Qهل يمكن لـ delattr حذف أسلوب؟
Aنعم، الأسلوب أيضًا خاصية صنف؛ بعد delattr(الصنف, 'method')، استدعاء ذلك الأسلوب على الكائن يُثير AttributeError.
Qما النوع الذي يجب أن تكون عليه وسيطة name؟
Aيجب أن تكون سلسلة نصية؛ تمرير نوع آخر (مثل رقم) يُثير TypeError.