setattr() تعيين خاصية

آخر تحديث: 2026-09-22

setattr() تعيين خاصية

يعيّن setattr(obj, name, value) الخاصية name في obj إلى value؛ وهو مكافئ لـ obj.name = value.

التصنيفالدوال المدمجة
النوعدالة مدمجة
إصدار بايثونall

📝 الصياغة

setattr(object, name, value)

⚙️ المعاملات

object مطلوبThe object whose attribute is set.
name مطلوبThe attribute name (string).
value مطلوبThe value to assign.

القيمة المُعادة:None; the attribute is set in place.

💥 الاستثناءات

▶ مثال

عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:

المخرجات:

100
المزيد من الحالات قادم قريباً — تابعونا.

❓ أسئلة شائعة

Qهل يختلف setattr(obj, 'x', 100) عن obj.x = 100؟
Aمكافئان وظيفيًا. ميزة setattr أن اسم الخاصية يمكن أن يكون متغيرًا أو سلسلة محسوبة ديناميكيًا، مناسبًا للبرمجة الانعكاسية.
Qما الاستخدامات النموذجية لـ setattr؟
Aتحميل الإعدادات/تعيين الكائنات: for k, v in config.items(): setattr(obj, k, v)، بتحويل قاموس إلى خصائص كائن دفعة واحدة.
Qماذا يحدث عند استهداف خاصية للقراءة فقط؟
Aيُثار AttributeError: can't set attribute، مثلًا عند الإسناد إلى property عرّفت getter فقط.
Qهل يمكن لصنف ذي __slots__ استقبال setattr لأي خاصية؟
Aلا — فقط أسماء الخصائص المعلنة في __slots__ يمكن تعيينها؛ تعيين أي اسم آخر يُثير AttributeError.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%