TheProgrammer نشر 28 أكتوبر 2015 أرسل تقرير نشر 28 أكتوبر 2015 أريد معرفة الفرق بين __getattr__ و __getattribute__، لأنني لحد الآن لا أعرف متى أستخدم كل واحدة منهما، قرأت في إحدى المقالات أن __getattribute__ ينطبق عليها أصناف النمط الجديد (new-style classes)، فهل هذا صحيح؟ اقتباس
0 هشام رزق الله نشر 28 أكتوبر 2015 أرسل تقرير نشر 28 أكتوبر 2015 إن الفرق الرئيسي بين دالتي __getattr__ و __getattribute__ هو أن الأولى تُستخدم فقط في حالة لم يتم إيجاد السمة (attribute) بالطرق العادية، أي أنها تعتبر كأنها خطة احتياطية لإيجاد السمات المفقودة.أما بالنسبة إلى __getattribute__ فهي تُستدعى قبل النظر إلى السمات الحالية الموجودة في الكائن.تُشتق أصناف النمط الجديد من الكائن على عكس أصناف النمط القديم الموجودة في الإصدار الثاني من بايثون التي لا تملك صنف قاعدة واضح.ولن يكون الفرق بين النمط القديم والجديد شيء أساسي لاختيار دالة بين __getattr__ و __getattribute__ أي أنه لا أهمية له في اختيار استخدامك.المصدر اقتباس
السؤال
TheProgrammer
أريد معرفة الفرق بين __getattr__ و __getattribute__، لأنني لحد الآن لا أعرف متى أستخدم كل واحدة منهما، قرأت في إحدى المقالات أن __getattribute__ ينطبق عليها أصناف النمط الجديد (new-style classes)، فهل هذا صحيح؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.