سؤال

جميع python المدمجة هي فئات فرعية من object واجهت العديد من الفئات المعرفة من قبل المستخدم والتي هي أيضا. لماذا ا؟ ما هو الغرض من الفصل object؟ إنها مجرد فئة فارغة ، أليس كذلك؟

هل كانت مفيدة؟

المحلول

باختصار ، يضع المهور السحرية المجانية.

في فترة طويلة ، Python 2.2 واستخدمت في وقت سابق "الطبقات النمط القديم". لقد كانت تنفيذًا خاصًا للفئات ، وكان لديهم بعض القيود (على سبيل المثال ، لم تتمكن من الفئات الفرعية المصممة). كان الإصلاح لهذا هو إنشاء نمط جديد من الفصل. ولكن ، فإن القيام بذلك سيشمل بعض التغييرات المتوافقة مع الخلف. لذلك ، للتأكد من أن الكود المكتوب لفصول النمط القديم سيظل يعمل ، object تم إنشاء الفصل ليكون بمثابة طبقة فائقة لجميع الفصول الدراسية الجديدة. لذلك ، في بيثون 2.x ، class Foo: pass سيخلق فصلًا قديمًا على الطراز القديم و class Foo(object): pass سيقوم بإنشاء فئة نمط جديدة.

لفترة أطول ، انظر Guido's توحيد الأنواع والفصول في بيثون 2.2.

وبشكل عام ، من الجيد الدخول @property Decorator هو واحد يتبادر إلى الذهن) لن يعمل مع الطبقات القديمة.

نصائح أخرى

إجابة قصيرة: التصنيف الفرعي object يجعلها بفعالية أسلوب جديد الفصل (لاحظ أن هذا غير ضروري منذ تلقائي في بيثون 3.x)

من أجل الفرق بين new style فصول و old style الفصول: انظر هذا السؤال stackoverflow. للحصول على القصة الكاملة: انظر هذه الكتابة الجميلة على أنواع البايثون والكائنات.

يتعلق الأمر بـ "النمط الجديد" من الفصول الدراسية. يمكنك قراءة المزيد عنه هنا: http://docs.python.org/tutorial/classes.html#multiple-inheritance وكذلك هنا: http://docs.python.org/reference/datamodel.html#new-style-and-classic classes

سيتيح لك استخدام الفصول الدراسية الجديدة استخدام "ميزات Python الأحدث والمتعددة الاستخدامات مثل __slots__ ، والواصفات ، والخصائص ، و __getattribute __ ()."

صحيح ، لكنه يمثل الفصل ك أسلوب جديد صف دراسي. يجب أن تستخدم الفصول المطورة حديثًا object قاعدة لأنها تكلف القليل والمستقبل الرمز الخاص بك.

النسخة القصيرة هي أن الفئات الكلاسيكية ، التي لم تكن بحاجة إلى فئة فائقة ، لديها قيود لا يمكن العمل عليها دون كسر الكثير من الكود القديم. لذلك قاموا بإنشاء مفهوم الطبقات على الطراز الجديد والتي من الفئة الفرعية من object, ، والآن يمكنك القيام بأشياء رائعة مثل تحديد الخصائص ، والفئة الفرعية dict لم يعد تمرينًا في الألم والبق الغريب.

التفاصيل موجودة في القسم 3.3 من مستندات بيثون: الطبقات الجديدة والكلاسيكية.

قدم بيثون 2.2 "فصول نمط جديدة" التي كانت لديها عدد من الميزات الإضافية بالنسبة إلى فئات النمط القديمة التي لم تكن كائن الفئة الفرعية. كان كائن الفئات الفرعية هو الطريقة المختارة للإشارة إلى أن فصلك يجب أن يكون فئة جديدة من النمط ، وليس أسلوبًا قديمًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top