فئات وكائنات بايثون [مع أمثلة]

نشرت: 2021-06-25

OOP - اختصار لـ Object-Oriented Programming - هو نموذج يعتمد على الكائنات والفئات لإنشاء برامج وظيفية. تعمل OOPs على نمطية الكود ، وتساعد الفئات والكائنات في كتابة أجزاء بسيطة قابلة لإعادة الاستخدام من التعليمات البرمجية التي يمكن استخدامها لإنشاء ميزات ووحدات برمجية أكبر. C ++ و Java و Python هي أكثر لغات البرمجة الشيئية شيوعًا. ومع ذلك ، عندما يتعلق الأمر بحالات الاستخدام اليوم - مثل علوم البيانات والتحليل الإحصائي - فإن لغة Python تتفوق على الحالتين الأخريين.

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

من خلال هذه المقالة ، سنساعدك على فهم جميع الفروق الدقيقة وراء الكائنات والفئات في Python ، إلى جانب كيفية البدء في إنشاء الفصول الدراسية الخاصة بك والعمل معها.

جدول المحتويات

دروس في بايثون

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

لفهم الحاجة إلى إنشاء فصل دراسي ، ضع في اعتبارك المثال البسيط التالي. لنفترض أنك ترغب في تتبع القطط في منطقتك التي لها خصائص مختلفة مثل العمر ، والسلالة ، واللون ، والوزن ، وما إلى ذلك. يمكنك استخدام قائمة وتتبع العناصر بطريقة 1: 1 ، على سبيل المثال ، يمكنك تتبع السلالة إلى العمر ، أو العمر للوزن باستخدام قائمة. ماذا لو كان من المفترض أن يكون هناك 100 قطة مختلفة؟ ماذا لو كان هناك المزيد من الخصائص لإضافتها؟ في مثل هذا السيناريو ، يميل استخدام القوائم إلى أن يكون غير منظم وفوضويًا.

هذا هو بالضبط المكان الذي تأتي فيه الفصول الدراسية!

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

علاوة على ذلك ، يؤدي إنشاء الفئات تلقائيًا إلى إنشاء نوع جديد من الكائنات - مما يسمح لك بإنشاء المزيد من الكائنات من نفس النوع. يمكن أن يكون لكل مثيل فئة سمات مرتبطة به من أجل الحفاظ على حالته. يمكن أن يكون لمثيلات الفصل طرقًا (على النحو المحدد بواسطة فئتها) لتعديل الحالة.

بعض النقاط في فئة بايثون:

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

بناء الجملة لتعريف فئة:

فئة ClassName:

# البيان -1

.

.

.

# بيان- N

علي سبيل المثال:

قطة الطبقة:

يمر

في المثال أعلاه ، تشير الكلمة الأساسية للفصل إلى أنك تقوم بإنشاء فئة متبوعة باسم الفصل (Cat في هذه الحالة). لم يتم تحديد دور هذه الفئة بعد.

مزايا استخدام الفئات في بايثون

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

كائنات في بايثون

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

يتسم الكائن على نطاق واسع بثلاثة أشياء:

  • الحالة: يشير هذا إلى السمات المختلفة لأي كائن والخصائص المختلفة التي يمكن أن يعرضها.
  • السلوك: يشير هذا بشكل أساسي إلى أساليب ذلك الكائن. كما يعكس أيضًا كيف يتفاعل هذا الكائن المعين مع الأشياء الأخرى أو يستجيب لها.
  • الهوية: الهوية هي الاسم الفريد للكائن الذي باستخدامه يمكن استدعاؤه عند الاقتضاء.

1. التصريح عن الأشياء

يُعرف إعلان الكائنات أيضًا باسم إنشاء فئة لأنه بمجرد تحديد فئة ، يتم إنشاء كائن افتراضي في حد ذاته (كما رأينا سابقًا) - وهو مثيل لتلك الفئة. وبالمثل ، في كل مرة تقوم فيها بإنشاء كائن ، فأنت تقوم بشكل أساسي بإنشاء مثيل جديد لفصلك.

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

تحقق من المثال أدناه. إليك برنامج يشرح كيفية إنشاء الفصول الدراسية.

قطة الطبقة:

# فئة بسيطة

# ينسب

attr1 = "القطط"

attr2 = "قطة"

# طريقة العينة

متعة مواطنه (الذات):

print ("أنا" ، self.attr1)

print ("أنا" ، self.attr2)

# كود السائق

# إنشاء مثيل للكائن

توم = قطة ()

# الوصول إلى سمات الطبقة

# والطريقة من خلال الأشياء

طباعة (Tom.attr1)

Tom.fun () ،

سيكون ناتج هذا البرنامج البسيط كما يلي:

القطط

أنا ماور

انا قط

كما ترى ، أنشأنا أولاً فئة تسمى cat ثم أنشأنا كائنًا باسم "Tom". كانت النواتج الثلاثة التي حصلنا عليها كما يلي:

  • القطط - كانت هذه نتيجة عبارة print (Tom.attr1). نظرًا لأن Tom هو كائن من فئة Cat وتم تعيين attr1 على أنه Feline ، فإن هذه الوظيفة تقوم بإرجاع Feline الناتج.
  • أنا قطط - Tom.fun () ؛ يستخدم الكائن المسمى Tom لاستدعاء وظيفة في فئة cat ، تُعرف باسم "fun". يجلب كائن Tom معه السمات إلى الوظيفة ، وبالتالي تُخرج الوظيفة الجملتين التاليتين - "أنا قطط".
  • أنا قطة - نفس السبب المذكور أعلاه.

الآن بعد أن أصبح لديك فهم لكيفية عمل الفئات والكائنات في بايثون ، فلنلقِ نظرة على بعض الطرق الأساسية.

2. الطريقة الذاتية

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

نتيجة لذلك ، إذا قمت بتعريف دالة بدون وسيطات ، فلا يزال لديها من الناحية الفنية وسيطة واحدة. هذا يسمى "الذات" في بايثون. لفهم هذا بشكل أفضل ، يمكنك مراجعة مفاهيمك عن المؤشرات في C ++ أو الرجوع إليها في Java. تعمل الطريقة الذاتية في الأساس بنفس الطريقة.

لفهم هذا بشكل أفضل - عندما نسمي أي طريقة لكائن ، على سبيل المثال:

myObject.myMethod (arg1، arg2) ، تقوم بايثون تلقائيًا بتحويلها إلى myClass.myMethod (myObject، arg1، arg2).

وهكذا ترى ، يصبح الكائن نفسه هو الوسيطة الأولى للطريقة. هذا ما تدور حوله الذات في بايثون.

3. طريقة __init__

تشبه هذه الطريقة المنشئات في Java أو C ++. مثل المُنشئ ، تُستخدم طريقة init لتهيئة حالة الكائن. يحتوي هذا على مجموعة من التعليمات (البيانات) التي يتم تنفيذها في وقت إنشاء الكائن. عندما يتم إنشاء كائن لفئة ما ، فإن طريقة init ستقوم تلقائيًا بتشغيل الطرق التي قمت بتهيئتها.

إليك جزء من التعليمات البرمجية لشرح ذلك بشكل أفضل:

# فئة عينة مع طريقة init

شخص فئة:

# طريقة init أو منشئ

def __init __ (الذات ، الاسم):

self.name = الاسم

# طريقة العينة

def say_hi (النفس):

print ("مرحبًا ، اسمي" ، self.name)

p = الشخص ("Sam")

p.say_hi ()

انتاج:

مرحبا اسمي سام

تعلم دورات تحليل البيانات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

متغيرات الفئة والمثال

تعد متغيرات المثيل فريدة لكل مثيل ، في حين أن متغيرات الفئة مخصصة للطرق والسمات المشتركة بين جميع مثيلات الفئة. وبالتالي ، فإن متغيرات الحالة هي في الأساس متغيرات يتم تعيين قيمتها داخل مُنشئ أو طريقة مع self. من ناحية أخرى ، فإن متغيرات الفئة هي تلك التي يتم تعيين قيمها داخل الفصل.

راجع الكود التالي لفهم كيفية تعريف متغيرات المثيل باستخدام مُنشئ (طريقة init):

قطة الطبقة:

# فئة متغير

حيوان = "قطة"

# طريقة init أو منشئ

def __init __ (ذاتي ، سلالة ، لون):

# المتغيرات الخاصة

تكاثر الذات = سلالة

self.color = color

# كائنات فئة الكلب

Tom = cat ("فارسي" ، "أسود")

ثلجي = قطة ("Indie" ، "أبيض")

طباعة ("تفاصيل توم:")

طباعة (توم هو حيوان توم)

طباعة ('Breed:'، Tom.breed)

طباعة ('Color:'، Tom.color)

طباعة ('\ n تفاصيل الثلج:')

طباعة ("Snowy is a"، Snowy.animal)

طباعة ('Breed:'، Snowy.breed)

طباعة ('Color:'، Snowy.color)

إذا اتبعت الكود أعلاه سطراً بسطر ، فإليك النتيجة التي ستتلقاها:

انتاج:

تفاصيل توم:

توم قطة

السلالة: الفارسية

لون أسود

التفاصيل الثلجية:

ثلجي قطة

السلالة: إيندي

اللون الابيض

ختاما

Python هي لغة برمجة أسهل نسبيًا ، خاصة للمبتدئين. بمجرد إتقان أساسيات ذلك ، ستكون جاهزًا للعمل مع مكتبات Python المختلفة وحل المشكلات الخاصة بالبيانات. ومع ذلك ، تذكر أنه بينما تبدأ الرحلة من فهم الفئات والأشياء ، يجب أن تتعلم أيضًا كيفية التعامل مع كائنات وفئات مختلفة وفروقها الدقيقة.

نأمل أن تساعد هذه المقالة في توضيح شكوكك حول الفئات والكائنات في بايثون. إذا كانت لديك أي أسئلة ، فيرجى ترك تعليق أدناه - وسنعاود الاتصال بك قريبًا!

إذا كنت تبحث عن تغيير وظيفي وتسعى للحصول على مساعدة احترافية - upGrad هنا من أجلك. تحقق من برنامجنا التنفيذي PG في علوم البيانات المقدم بالتعاون مع IIIT-B . تعرف على أكثر من 14 لغة وأدوات برمجة (بما في ذلك Python) مع الوصول إلى أكثر من 30 مشروعًا متعلقًا بالصناعة. يمكن للطلاب من أي تيار التسجيل في هذا البرنامج ، بشرط أن يكونوا قد سجلوا ما لا يقل عن 50 ٪ في البكالوريوس.

لدينا قاعدة متينة من 85+ دولة للمتعلمين ، وأكثر من 40.000 متعلم مدفوع الأجر على مستوى العالم ، وأكثر من 500.000 من المهنيين العاملين السعداء. تتيح لك المساعدة المهنية بزاوية 360 درجة ، جنبًا إلى جنب مع التعرض للدراسة والعصف الذهني مع الطلاب العالميين ، تحقيق أقصى استفادة من تجربة التعلم الخاصة بك.

ما هي الفئات والكائنات في بايثون؟

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

ما هو نموذج البرمجة الذي تتبعه بايثون؟

هناك أربعة نماذج رئيسية يمكن تمييزها تليها Python- وجوه المنحى ، والإجرائية ، والوظيفية ، والحتمية. تدعم بايثون بشدة المفاهيم الموجهة للكائنات ؛ ومع ذلك ، فهي ليست لغة برمجة موجهة بحت.
السبب في دعم نماذج البرمجة المختلفة هو أنها تتأثر بشكل ملحوظ ببعض البرامج النصية مثل CoffeeScript ولغات البرمجة الموجهة للكائنات مثل Ruby. كما أنه يتحد مع لغات مثل R لزيادة الكفاءة والقدرة الحسابية.
كونها لغة متعددة النماذج ، يُعتقد أن بايثون هي واحدة من أكثر اللغات تنوعًا. يستخدم على نطاق واسع للتطوير وتحليل البيانات وتجريف الويب والأتمتة.

ما هي معدلات الوصول في بايثون؟

على غرار لغات البرمجة الأخرى الموجهة للكائنات ، يحتوي الفصل في Python أيضًا على ثلاثة مُعدِّلات وصول:
أ. معدل الوصول العام : يمكن الوصول مباشرة إلى أعضاء الفصل المحدد للجمهور من خلال أي وظيفة ، مثل وظائف الأعضاء وكذلك وظائف غير الأعضاء. إذا لم يتم تحديد محدد وصول ، فسيتم اعتبار جميع أعضاء الفصل كأعضاء عامة بشكل افتراضي بواسطة المترجم.
ب. معدل الوصول الخاص : يتم إخفاء أعضاء الفصل هؤلاء عن أعضاء الفصل الآخرين. لا يمكن الوصول إليها إلا من خلال وظائف الأعضاء في الفصل الذي تم تعريفها فيه.
ج. معدّل الوصول المحمي : لا يمكن الوصول إلى أعضاء الفئة المحددين على أنهم محميون إلا من خلال وظائف الأعضاء من نفس الفئة وسيقومون بخطأ إذا حاولت الوصول خارج الفصل الدراسي. الاختلاف الرئيسي الوحيد بين محدد الوصول الخاص والمحمي هو أنه يمكن توريث الأعضاء المحميين بينما لا يمكن توريث الأعضاء الخاصين.