أهلاً بك! خاصية Classes and Objects (الصفوف والكائنات) هي من أهم المفاهيم في البرمجة الشيئية (Object-Oriented Programming - OOP) في بايثون، وهي أساس بناء برامج قوية ومرنة وقابلة لإعادة الاستخدام. سأشرح لك هذا المفهوم بالتفصيل:
1. الكلاس (Class):
- تعريف: الكلاس هو بمثابة "قالب" أو "مخطط" لإنشاء كائنات. يحدد الكلاس الخصائص (Attributes) التي ستمتلكها الكائنات التابعة له، والسلوكيات (Methods) التي ستكون قادرة على القيام بها.
- مثال: تخيل أنك تريد إنشاء برنامج لإدارة معلومات الطلاب. يمكنك إنشاء كلاس باسم "Student" (طالب). هذا الكلاس سيحدد أن كل طالب لديه:
- خصائص: اسم (name)، عمر (age)، رقم جامعي (student_id)، تخصص (major).
- سلوكيات: تسجيل في مقرر (enroll_in_course)، عرض معلومات (display_info).
- بناء الكلاس في بايثون: يتم استخدام الكلمة المفتاحية
class
لتعريف كلاس في بايثون. مثال:
Python
class Student: def __init__(self, name, age, student_id, major): self.name = name self.age = age self.student_id = student_id self.major = major
def enroll_in_course(self, course_name): print(f"{self.name} enrolled in {course_name}")
def display_info(self): print(f"Name: {self.name}, Age: {self.age}, ID: {self.student_id}, Major: {self.major}")
2. الكائن (Object):
- تعريف: الكائن هو "نسخة" فعلية من الكلاس. عندما تقوم بإنشاء كائن من كلاس، فأنت تقوم بتخصيص قيم فعلية للخصائص التي تم تعريفها في الكلاس.
- مثال: بناءً على الكلاس "Student" الذي أنشأناه، يمكنك إنشاء كائن لطالب اسمه "أحمد" عمره 20 سنة ورقمه الجامعي 12345 وتخصصه هندسة. هذا الكائن سيحتوي على القيم المحددة له، وسيكون قادراً على استخدام السلوكيات التي تم تعريفها في الكلاس.
- إنشاء كائن في بايثون: يتم إنشاء كائن عن طريق استدعاء الكلاس كأنه دالة. مثال:
Python
student1 = Student("فراس", 20, 12345, "لحام")
3. العلاقة بين الكلاس والكائن:
الكلاس هو المخطط، والكائن هو المبنى الذي تم إنشاؤه بناءً على هذا المخطط. يمكنك إنشاء العديد من الكائنات المختلفة من نفس الكلاس، وكل كائن سيكون له قيمه الخاصة.
4. self
في بايثون:
في تعريف الكلاس، نستخدم الكلمة self
للإشارة إلى الكائن الحالي. عندما يتم استدعاء سلوك (Method) على كائن، يتم تمرير الكائن نفسه كأول معامل إلى هذا السلوك، ويتم تمثيله بواسطة self
.
5. __init__
في بايثون:
الدالة __init__
هي دالة خاصة تسمى "المنشئ" (Constructor). يتم استدعاؤها تلقائياً عند إنشاء كائن جديد من الكلاس. تُستخدم __init__
لتهيئة خصائص الكائن بقيم ابتدائية.
مثال كامل:
Python
class Student: def __init__(self, name, age, student_id, major): self.name = name self.age = age self.student_id = student_id self.major = major
def enroll_in_course(self, course_name): print(f"{self.name} enrolled in {course_name}")
def display_info(self): print(f"Name: {self.name}, Age: {self.age}, ID: {self.student_id}, Major: {self.major}")
# إنشاء كائناتstudent1 = Student("فراس", 20, 12345, "لحام")student2 = Student("أية", 21, 67890, "طب")
# استخدام سلوكيات الكائناتstudent1.display_info() # سيطبع معلومات أحمدstudent1.enroll_in_course("مقدمة في البرمجة") # سيطبع أن أحمد سجل في المقرر
student2.display_info() # سيطبع معلومات فاطمة
فوائد استخدام Classes and Objects:
- تنظيم الكود: يساعد على تنظيم الكود وجعله أكثر قابلية للقراءة والفهم.
- إعادة الاستخدام: يمكنك إعادة استخدام الكلاس لإنشاء العديد من الكائنات المختلفة.
- النمذجة: يمكنك نمذجة الكائنات الحقيقية في برنامجك.