بايثون هي لغة برمجة موجهة للكائنات تقدم فئات، وهي أداة فعالة لكتابة تعليمات برمجية قابلة لإعادة الاستخدام. لوصف الكائنات ذات الخصائص والسلوكيات المشتركة، يتم استخدام الفئات. سنقوم بدراسة أفكار بايثون حول الفئات والكائنات في هذه المقالة.
الفصول في بايثون:
في لغة بايثون، الفئة هي نوع بيانات محدد من قبل المستخدم يحتوي على البيانات نفسها والطرق التي يمكن استخدامها لمعالجتها. بمعنى ما، تعمل الفئات كقالب لإنشاء الكائنات. أنها توفر الخصائص والعمليات التي سوف تستخدمها الأشياء.
لنفترض أن الفصل هو نموذج أولي للمبنى. يحتوي المبنى على كافة التفاصيل المتعلقة بالأرضية والغرف والأبواب والنوافذ وما إلى ذلك. ويمكننا إنشاء أي عدد نريده من المباني بناءً على هذه التفاصيل. وبالتالي، يمكن رؤية المبنى كفئة، ويمكننا إنشاء أكبر عدد ممكن من الكائنات من هذه الفئة.
إنشاء فئات في بايثون
في بايثون، يمكن إنشاء فئة باستخدام الكلمة الأساسية فئة، متبوعة باسم الفئة. ويرد أدناه بناء الجملة لإنشاء فئة.
بناء الجملة
class ClassName: #statement_suite
في بايثون، يجب أن نلاحظ أن كل فئة مرتبطة بسلسلة وثائق يمكن الوصول إليها باستخدام .__doc__. يحتوي الفصل على مجموعة بيانات تتضمن الحقول والمنشئ والوظيفة وما إلى ذلك.
مثال:
شفرة:
class Person: def __init__(self, name, age): # This is the constructor method that is called when creating a new Person object # It takes two parameters, name and age, and initializes them as attributes of the object self.name = name self.age = age def greet(self): # This is a method of the Person class that prints a greeting message print('Hello, my name is ' + self.name)
الاسم والعمر هما خاصيتان لفئة الشخص. بالإضافة إلى ذلك، فهو يحتوي على وظيفة تسمى الترحيب والتي تقوم بطباعة الترحيب.
الكائنات في بايثون:
الكائن هو مثيل معين لفئة ذات خصائص ووظائف فريدة. بعد إنشاء الفصل، يمكنك إنشاء كائنات بناءً عليه. باستخدام مُنشئ الفئة، يمكنك إنشاء كائن من فئة في بايثون. تتم تهيئة سمات الكائن في المُنشئ، وهو إجراء خاص يحمل الاسم __init__.
بناء الجملة:
ما هو مسج
# Declare an object of a class object_name = Class_Name(arguments)
مثال:
شفرة:
class Person: def __init__(self, name, age): self.name = name self.age = age def greet(self): print('Hello, my name is ' + self.name) # Create a new instance of the Person class and assign it to the variable person1 person1 = Person('Ayan', 25) person1.greet()
انتاج:
'Hello, my name is Ayan'
المعلمة الذاتية
تشير المعلمة الذاتية إلى المثيل الحالي للفئة وتصل إلى متغيرات الفئة. يمكننا استخدام أي شيء بدلا من الذات، ولكن يجب أن يكون المعلمة الأولى لأي وظيفة تنتمي إلى الفئة.
_ _init_ _ الطريقة
من أجل إنشاء مثيل لفئة في بايثون، يتم استدعاء وظيفة محددة تسمى __init__. على الرغم من أنه يتم استخدامه لتعيين سمات الكائن، إلا أنه يُشار إليه غالبًا على أنه مُنشئ.
الحجة الذاتية هي الوحيدة التي تتطلبها طريقة __init__. تشير هذه الوسيطة إلى مثيل الفئة الذي تم إنشاؤه حديثًا. لتهيئة قيم كل سمة مرتبطة بالكائنات، يمكنك الإعلان عن وسائط إضافية في الأسلوب __init__.
متغيرات الفئة والمثيل
كافة مثيلات متغيرات فئة تبادل الفئة. وهي تعمل بشكل مستقل عن أي أساليب فئة ويمكن الوصول إليها من خلال استخدام اسم الفئة. وهنا رسم توضيحي:
شفرة:
class Person: count = 0 # This is a class variable def __init__(self, name, age): self.name = name # This is an instance variable self.age = age Person.count += 1 # Accessing the class variable using the name of the class person1 = Person('Ayan', 25) person2 = Person('Bobby', 30) print(Person.count)
انتاج:
2
حيث أن متغيرات المثيل خاصة بكل مثيل للفئة. يتم تحديدها باستخدام الوسيطة الذاتية في الأسلوب __init__. وهنا رسم توضيحي:
شفرة:
class Person: def __init__(self, name, age): self.name = name # This is an instance variable self.age = age person1 = Person('Ayan', 25) person2 = Person('Bobby', 30) print(person1.name) print(person2.age)
انتاج:
Ayan 30
يتم إنشاء متغيرات الفئة بشكل منفصل عن أي أساليب فئة ويتم مشاركتها بواسطة جميع نسخ الفئة. كل مثيل لفئة له متغيرات المثيل الخاصة به، والتي يتم تحديدها في طريقة __init__ باستخدام الوسيطة الذاتية.
خاتمة:
في الختام، تعتبر مفاهيم الفئات والكائنات في بايثون أفكارًا قوية تتيح لك كتابة برامج قابلة لإعادة الاستخدام. يمكنك دمج المعلومات والقدرات في كيان واحد يمكن استخدامه لبناء العديد من الكائنات عن طريق إنشاء فئة. باستخدام التدوين النقطي، يمكنك الوصول إلى أساليب الكائن وخصائصه بعد إنشائه. يمكنك تطوير تعليمات برمجية أكثر منطقية وفعالية وقابلة للإدارة من خلال فهم فئات وكائنات Python.