الفرق بين المراجعتين ل"Python/class"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (استبدال النص - 'Python/numeric-operations' ب'Python/numeric_operations')
 
(5 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 2: سطر 2:
 
تعدّ الأصناف وسيلة لجمع البيانات والعمليات في بوتقة واحدة، ويؤدي إنشاء صنف جديد إلى تكوين نوع جديد من الكائنات، ما يتيح إنشاء نسخ (instances) من ذلك النوع. يمكن أن ترتبط بكلّ صنف مجموعة من الخاصيات (attributes) التي تساعد في متابعة حالة الصنف، إضافة إلى مجموعة من التوابع (methods) التي تساعد في تعديل حالة ذلك الصنف.
 
تعدّ الأصناف وسيلة لجمع البيانات والعمليات في بوتقة واحدة، ويؤدي إنشاء صنف جديد إلى تكوين نوع جديد من الكائنات، ما يتيح إنشاء نسخ (instances) من ذلك النوع. يمكن أن ترتبط بكلّ صنف مجموعة من الخاصيات (attributes) التي تساعد في متابعة حالة الصنف، إضافة إلى مجموعة من التوابع (methods) التي تساعد في تعديل حالة ذلك الصنف.
  
لو أجرينا مقارنة بين بايثون ولغات البرمجة الأخرى، سنجد بأنّ بايثون تضيف قدرًا ضئيلًا من الصياغات الجديدة إلى الأصناف؛ إذ تعتمد بايثون أساليب متّبعة في لغتي [https://ar.wikipedia.org/wiki/%D8%B3%D9%8A%2B%2B C++‎] و [[wikipedia:Modula-3|Modula-3]].
+
لو أجرينا مقارنة بين بايثون ولغات البرمجة الأخرى، سنجد بأنّ بايثون تضيف قدرًا ضئيلًا من الصياغات الجديدة إلى الأصناف؛ إذ تعتمد بايثون الأساليب المتّبعة في لغتي [https://ar.wikipedia.org/wiki/%D8%B3%D9%8A%2B%2B C++‎] و [[wikipedia:Modula-3|Modula-3]].
  
 
توفّر الأصناف في بايثون جميع الميزات المعتمدة في البرمجة كائنية التوجه، فيمكن أن [[Python/inhertance|يرث]] الصنف من أصناف أخرى متعددة، ويمكن للصنف المشتق من صنف آخر أن يتجاوز (override) على التوابع الخاصة بالصنف أو الأصناف الأساسية، ويمكن للتابع أن يستدعي التابع الخاص بالصنف الأساسي باستخدام الاسم ذاته.
 
توفّر الأصناف في بايثون جميع الميزات المعتمدة في البرمجة كائنية التوجه، فيمكن أن [[Python/inhertance|يرث]] الصنف من أصناف أخرى متعددة، ويمكن للصنف المشتق من صنف آخر أن يتجاوز (override) على التوابع الخاصة بالصنف أو الأصناف الأساسية، ويمكن للتابع أن يستدعي التابع الخاص بالصنف الأساسي باستخدام الاسم ذاته.
سطر 8: سطر 8:
 
يمكن للأصناف أن تتضمن عددًا غير محدّدٍ من البيانات، وكما هو الحال في [[Python/modules|الوحدات (modules)]] فإنّ الأصناف هي جزء من الطبيعة الديناميكية لبايثون، إذ يمكن إنشاؤها في وقت التشغيل بل ويمكن تعديلها بعد إنشائها أيضًا.
 
يمكن للأصناف أن تتضمن عددًا غير محدّدٍ من البيانات، وكما هو الحال في [[Python/modules|الوحدات (modules)]] فإنّ الأصناف هي جزء من الطبيعة الديناميكية لبايثون، إذ يمكن إنشاؤها في وقت التشغيل بل ويمكن تعديلها بعد إنشائها أيضًا.
  
في لغة [https://ar.wikipedia.org/wiki/%D8%B3%D9%8A%2B%2B C++‎] تكون عناصر الصنف عادة (وبضمنها عناصر البيانات) عامّة (public) (باستثناء [[Private-variables|المتغيرات الخاصة Private Variables]]) وتكون جميع دوالّ الصنف virtual.
+
في لغة [https://ar.wikipedia.org/wiki/%D8%B3%D9%8A%2B%2B C++‎] تكون عناصر الصنف عادة (وبضمنها عناصر البيانات) عامّة (public، باستثناء [[Python/private_variables|المتغيرات الخاصة Private Variables]]) وتكون جميع دوالّ الصنف ظاهريةً (virtual).
  
كما هو الحال في [[wikipedia:Modula-3|Modula-3]] لا توجد طرق مختصرة للإشارة إلى عناصر الكائن عن طريق توابعه، بل يجري التصريح عن التابع مع تحديد الوسيط الأول الذي يمثّل الكائن والذي تقدّمه اللغة بصورة ضمنية بواسطة الاستدعاء.
+
تشبه بايثون [[wikipedia:Modula-3|Modula-3]] في عدم وجود طرائق مختصرة للإشارة إلى عناصر الكائن عن طريق توابعه، بل يجري التصريح عن التابع مع تحديد الوسيط الأول الذي يمثّل الكائن والذي تقدّمه اللغة بصورة ضمنية بواسطة الاستدعاء.
  
كما هو الحال في [https://ar.wikipedia.org/wiki/%D8%B3%D9%85%D9%88%D9%84_%D8%AA%D9%88%D9%83 Smalltalk] فإنّ الأصناف هي كائنات بحدّ ذاتها وهكذا يمكن تقديم صياغات لاستيراد الأصناف وإعادة تسميتها. 
+
وتشبه بايثون [https://ar.wikipedia.org/wiki/%D8%B3%D9%85%D9%88%D9%84_%D8%AA%D9%88%D9%83 Smalltalk] في أنّ الأصناف هي كائنات بحدّ ذاتها وهكذا يمكن تقديم صياغات لاستيراد الأصناف وإعادة تسميتها. 
  
على العكس من [https://ar.wikipedia.org/wiki/%D8%B3%D9%8A%2B%2B C++‎] و [[wikipedia:Modula-3|Modula-3]]، يمكن استخدام [[Python/Topics#.D8.A3.D9.86.D9.88.D8.A7.D8.B9 .D8.A7.D9.84.D8.A8.D9.8A.D8.A7.D9.86.D8.A7.D8.AA|أنواع البيانات الداخلية]] كأصناف أساسية يمكن للمستخدم أن يوسّعها حسب حاجته، كذلك يمكن إعادة تعريف معظم العوامل الداخلية -كما هو الحال في [https://ar.wikipedia.org/wiki/%D8%B3%D9%8A%2B%2B C++‎]- التي تمتلك صيغة خاصة (مثل [[Python/numeric-operations|العوامل الحسابية]]) في نسخ الأصناف.
+
على العكس من [https://ar.wikipedia.org/wiki/%D8%B3%D9%8A%2B%2B C++‎] و [[wikipedia:Modula-3|Modula-3]]، يمكن استخدام [[:تصنيف:Python Types|أنواع البيانات الداخلية]] كأصناف أساسية يمكن للمستخدم أن يوسّعها حسب حاجته، كذلك يمكن إعادة تعريف معظم العوامل الداخلية -كما هو الحال في [https://ar.wikipedia.org/wiki/%D8%B3%D9%8A%2B%2B C++‎]- التي تمتلك صيغة خاصة (مثل [[Python/numeric_operations|العوامل الحسابية]]) في نسخ الأصناف.
 +
 
 +
== انظر أيضًا ==
 +
* [[Python/class_definition|تعريف الأصناف في بايثون.]]
  
 
== مصادر ==
 
== مصادر ==

المراجعة الحالية بتاريخ 15:04، 29 مايو 2018

تعدّ الأصناف وسيلة لجمع البيانات والعمليات في بوتقة واحدة، ويؤدي إنشاء صنف جديد إلى تكوين نوع جديد من الكائنات، ما يتيح إنشاء نسخ (instances) من ذلك النوع. يمكن أن ترتبط بكلّ صنف مجموعة من الخاصيات (attributes) التي تساعد في متابعة حالة الصنف، إضافة إلى مجموعة من التوابع (methods) التي تساعد في تعديل حالة ذلك الصنف.

لو أجرينا مقارنة بين بايثون ولغات البرمجة الأخرى، سنجد بأنّ بايثون تضيف قدرًا ضئيلًا من الصياغات الجديدة إلى الأصناف؛ إذ تعتمد بايثون الأساليب المتّبعة في لغتي C++‎ و Modula-3.

توفّر الأصناف في بايثون جميع الميزات المعتمدة في البرمجة كائنية التوجه، فيمكن أن يرث الصنف من أصناف أخرى متعددة، ويمكن للصنف المشتق من صنف آخر أن يتجاوز (override) على التوابع الخاصة بالصنف أو الأصناف الأساسية، ويمكن للتابع أن يستدعي التابع الخاص بالصنف الأساسي باستخدام الاسم ذاته.

يمكن للأصناف أن تتضمن عددًا غير محدّدٍ من البيانات، وكما هو الحال في الوحدات (modules) فإنّ الأصناف هي جزء من الطبيعة الديناميكية لبايثون، إذ يمكن إنشاؤها في وقت التشغيل بل ويمكن تعديلها بعد إنشائها أيضًا.

في لغة C++‎ تكون عناصر الصنف عادة (وبضمنها عناصر البيانات) عامّة (public، باستثناء المتغيرات الخاصة Private Variables) وتكون جميع دوالّ الصنف ظاهريةً (virtual).

تشبه بايثون Modula-3 في عدم وجود طرائق مختصرة للإشارة إلى عناصر الكائن عن طريق توابعه، بل يجري التصريح عن التابع مع تحديد الوسيط الأول الذي يمثّل الكائن والذي تقدّمه اللغة بصورة ضمنية بواسطة الاستدعاء.

وتشبه بايثون Smalltalk في أنّ الأصناف هي كائنات بحدّ ذاتها وهكذا يمكن تقديم صياغات لاستيراد الأصناف وإعادة تسميتها. 

على العكس من C++‎ و Modula-3، يمكن استخدام أنواع البيانات الداخلية كأصناف أساسية يمكن للمستخدم أن يوسّعها حسب حاجته، كذلك يمكن إعادة تعريف معظم العوامل الداخلية -كما هو الحال في C++‎- التي تمتلك صيغة خاصة (مثل العوامل الحسابية) في نسخ الأصناف.

انظر أيضًا

مصادر

  • صفحة Classes في توثيق بايثون الرسمي.