دليل المبتدئين لفئات وكائنات Python
بايثون هي لغة برمجة موجهة للكائنات، مما يعني أنها تسمح لك بإنشاء الكائنات وإدارتها. الكائن هو مثيل لفئة، وهي عبارة عن مخطط لإنشاء الكائنات. يعد فهم الفئات والكائنات أمرًا أساسيًا لإتقان بايثون، لأنه يوفر نهجًا منظمًا للبرمجة. ستقدم لك هذه المقالة فئات وكائنات بايثون، وكيفية تعريفها، وكيفية استخدامها بشكل فعال في الكود الخاص بك.
ما هو الفصل؟
الفئة في بايثون هي مخطط لإنشاء الكائنات. وهي تحدد مجموعة من السمات والطرق التي ستحتوي عليها الكائنات التي تم إنشاؤها. السمات هي متغيرات تحتوي على بيانات، في حين أن الطرق هي وظائف تحدد سلوك الكائن. يمكن تعريف الفئة باستخدام الكلمة الأساسية class
متبوعة باسم الفئة وعلامة النقطتين.
# Defining a simple class
class Dog:
# Class attribute
species = "Canis familiaris"
# Initializer / Instance attributes
def __init__(self, name, age):
self.name = name
self.age = age
# Instance method
def description(self):
return f"{self.name} is {self.age} years old"
# Another instance method
def speak(self, sound):
return f"{self.name} says {sound}"
ما هو الشيء؟
الكائن هو مثيل لفئة. عند تعريف فئة، لا يتم تخصيص أي ذاكرة حتى يتم إنشاء كائن من تلك الفئة. يتضمن إنشاء الكائن استدعاء الفئة كما لو كانت دالة. يمكنك بعد ذلك الوصول إلى سمات الفئة وطرقها من خلال الكائن باستخدام تدوين النقاط.
# Creating an object of the Dog class
my_dog = Dog("Buddy", 5)
# Accessing attributes and methods
print(my_dog.description()) # Output: Buddy is 5 years old
print(my_dog.speak("Woof")) # Output: Buddy says Woof
طريقة __init__
طريقة __init__
هي طريقة خاصة في بايثون، تُعرف أيضًا باسم المنشئ. يتم استدعاؤها تلقائيًا عند إنشاء مثيل جديد من الفئة. تُستخدم طريقة __init__
لتهيئة سمات الفئة. يتم تعريفها باستخدام الكلمة الأساسية def
، متبوعة باسم الطريقة __init__
وself
، والتي تشير إلى مثيل الفئة.
# Example of using the __init__ method
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# Creating an object of the Person class
person1 = Person("Alice", 30)
print(person1.name) # Output: Alice
print(person1.age) # Output: 30
سمات المثيل مقابل سمات الفئة
يمكن تعريف السمات في بايثون على مستوى الفصل أو على مستوى المثيل. يتم مشاركة سمات الفصل بين جميع مثيلات الفصل، في حين تكون سمات المثيل خاصة بكل مثيل. يتم تعريف سمات الفصل مباشرة في الفصل، في حين يتم تعريف سمات المثيل داخل الطرق، عادةً داخل طريقة __init__
.
# Example of class and instance attributes
class Car:
# Class attribute
wheels = 4
def __init__(self, color, brand):
# Instance attributes
self.color = color
self.brand = brand
# Creating objects of the Car class
car1 = Car("Red", "Toyota")
car2 = Car("Blue", "Honda")
print(car1.wheels) # Output: 4
print(car2.wheels) # Output: 4
print(car1.color) # Output: Red
print(car2.color) # Output: Blue
الأساليب في فئات بايثون
الأساليب هي وظائف محددة داخل فئة تصف سلوكيات الكائنات. هناك أنواع مختلفة من الأساليب في فئات بايثون:
- طرق المثيلات: هذه هي أكثر أنواع الطرق شيوعًا التي تعمل على مثيل من الفئة. يمكنها تعديل حالة الكائن وتتطلب مرجعًا إلى الكائن، عادةً
self
. - طرق الفئة: يتم وضع علامة على هذه الطرق باستخدام الديكور
@classmethod
وتأخذ مرجعًا إلى الفئة نفسها كمعلمة أولى، تسمى عادةًcls
. - الأساليب الثابتة: يتم تمييز هذه الأساليب بالزخرفة
@staticmethod
ولا تتطلب مرجعًا إلى المثيل أو الفئة. وهي تتصرف مثل الوظائف العادية ولكنها تنتمي إلى مساحة اسم الفئة.
# Example of instance, class, and static methods
class MathOperations:
# Class attribute
pi = 3.14
# Instance method
def square(self, number):
return number ** 2
# Class method
@classmethod
def circle_area(cls, radius):
return cls.pi * (radius ** 2)
# Static method
@staticmethod
def add(x, y):
return x + y
# Using different types of methods
math = MathOperations()
print(math.square(4)) # Output: 16 (Instance method)
print(MathOperations.circle_area(5)) # Output: 78.5 (Class method)
print(MathOperations.add(3, 7)) # Output: 10 (Static method)
الميراث في بايثون
الوراثة هي ميزة أساسية في البرمجة الموجهة للكائنات والتي تسمح للفئة بوراثة الخصائص والطرق من فئة أخرى. الفئة التي ترث تسمى child class، بينما الفئة التي يتم توريثها هي parent class. تعمل الوراثة على تعزيز إمكانية إعادة استخدام الكود وتبسيط بنية الكود.
# Example of inheritance
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
return f"{self.name} makes a sound"
# Child class inheriting from Animal
class Cat(Animal):
def speak(self):
return f"{self.name} says Meow"
# Creating objects of the parent and child classes
animal = Animal("Generic Animal")
cat = Cat("Whiskers")
print(animal.speak()) # Output: Generic Animal makes a sound
print(cat.speak()) # Output: Whiskers says Meow
خاتمة
إن فهم الفئات والكائنات أمر أساسي لكتابة برامج Python فعالة. من خلال إتقان هذه المفاهيم، ستتمكن من إنشاء أكواد أكثر تنظيمًا وكفاءة. غطى هذا الدليل أساسيات تعريف الفئات وإنشاء الكائنات واستخدام الأساليب والوراثة في Python. مع الممارسة، ستصبح مرتاحًا لاستخدام تقنيات البرمجة الموجهة للكائنات في مشاريع Python الخاصة بك.