كل شيء هو كائن (Object) في بايثون


Python هي لغة برمجة موجهة كائنية (object-oriented)، وفي بايثون كل شيء هو كائن (Object).
كل شيء هو كائن
لنوضح ما يعنيه هذا. رأينا سابقًا في موضوع المتغيرات في بايثون أن المتغيرات هي مجرد مؤشرات، وأن أسماء المتغيرات نفسها لا تحتوي على معلومات نوع مرفقة. لنضع في اعتبارنا ما يلي:
x = 4
type(x) # int
x = 'hello'
type(x) # str
x = 3.14159
type(x) # float
لغة بايثون لها أنواع؛ ومع ذلك لا ترتبط هذه الأنواع بأسماء المتغيرات بل ترتبط بالكائنات نفسها.
في لغات البرمجة الموجهة الكائنية (object-oriented) مثل Python، الكائن هو كيان يحتوي على بيانات إلى جانب البيانات الوصفية و / أو الوظائف المرتبطة. في Python كل شيء هو كائن (Object)، مما يعني أن كل كيان لديه بعض البيانات الوصفية (تسمى attributes) والوظائف المرتبطة بها (تسمى methods). يتم الوصول إلى هذه السمات والطرق عبر بناء الجملة النقطية.
على سبيل المثال، قبل أن نلاحظ أن القوائم لديها طريقة إلحاق (append)، والتي تضيف عنصرًا إلى القائمة، ويمكن الوصول إليها عبر بناء جملة النقطة ("."):
L = [1, 2, 3]
L.append(100)
print(L) # [1, 2, 3, 100]
في حين أنه من المتوقع أن يكون للكائنات المركبة مثل القوائم (List) سمات (attributes) وطرق (methods) ، فإن ما هو غير متوقع في بعض الأحيان هو أنه في بايثون، حتى الأنواع البسيطة لها سمات وطرق مرفقة. على سبيل المثا; تحتوي الأنواع العددية على سمة حقيقية وخيالية تُرجع الجزء الحقيقي والخيالي من القيمة، إذا تم عرضها كرقم مركب:
x = 4.5
print(x.real, "+", x.imag, 'i')
# 4.5 + 0.0 i
الأساليب (methods) مثل السمات (attributes)، باستثناء أنها وظائف يمكنك استدعاءها باستخدام أقواس الفتح والإغلاق. على سبيل المثال، تحتوي أرقام الفاصلة المتحركة على عملية تسمى is_integer تتحقق مما إذا كانت القيمة عددًا صحيحًا أم لا:
x = 4.5
x.is_integer() # False
x = 4.0
x.is_integer() # True
عندما نقول أن كل شيء في Python هو كائن (Object)، فإننا نعني حقًا أن كل شيء هو كائن - حتى سمات (attributes) وأساليب (methods) الكائنات هي نفسها كائنات بمعلومات الكتابة الخاصة بها:
type(x.is_integer)
# builtin_function_or_method
الخاتمة
ان اختيار تصميم كل شيء على انه كائن في Python يسمح ببعض التركيبات اللغوية الملائمة للغاية.
نتمنى ان الموضوع كان مفيدا, لا تنسى ترك تعليق :).
تذكر أن المساهمات في هذا الموضوع يجب أن تتبع إرشادات المجتمع.
لا توجد تعليقات بعد.