البرمجة الكائنية
Object-Oriented Programming
الأصناف والكائنات والسمات والدوال، والوراثة كما تظهر في مكتبات الذكاء الاصطناعي.
الصنف والكائن
class Dataset:
def __init__(self, name, samples):
self.name = name # سمة
self.samples = samples
def size(self): # دالة (method)
return len(self.samples)
ds = Dataset("iris", [1, 2, 3])
print(ds.name, ds.size()) # iris 3self يشير إلى الكائن الحالي، ويُمرر تلقائياً عند الاستدعاء.
الوراثة
class ImageDataset(Dataset):
def __init__(self, name, samples, size_px):
super().__init__(name, samples)
self.size_px = size_px
def describe(self):
return f"{self.name}: {self.size()} صور بحجم {self.size_px}"super() تستدعي دوال الصنف الأصلي.
الدوال الخاصة
دوال تبدأ وتنتهي بشرطتين سفليتين تتيح دمج الصنف مع اللغة:
class Vector:
def __init__(self, x, y):
self.x, self.y = x, y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
def __repr__(self):
return f"Vector({self.x}, {self.y})"
Vector(1, 2) + Vector(3, 4) # Vector(4, 6)__len__ و__getitem__ تجعلان الكائن يدعم len() والفهرسة، وهذا ما يطلبه صنف Dataset في PyTorch.
البرمجة الكائنية في الذكاء الاصطناعي
import torch.nn as nn
class TinyNet(nn.Module):
def __init__(self):
super().__init__()
self.fc = nn.Linear(4, 3)
def forward(self, x):
return self.fc(x)تعرّف الطبقات في __init__ وتحدد طريقة الحساب في forward. الفهم الجيد للأصناف والوراثة يجعل قراءة هذه الشيفرات طبيعية.
مصطلحات الدرس
- الصنف Class
- قالب يصف بيانات وسلوك مجموعة من الكائنات.
- الكائن Object
- نسخة محددة تُنشأ من صنف ولها قيم سماتها الخاصة.
- الوراثة Inheritance
- آلية تسمح لصنف فرعي بأخذ سمات صنف أصلي ودواله مع إمكانية توسيعها أو تعديلها.
الملخص
البرمجة الكائنية تنظم الشيفرة حول أصناف (classes) تجمع البيانات (السمات) والسلوك (الدوال). يُنشأ الكائن من الصنف وتهيئه الدالة __init__، وتتيح الوراثة (inheritance) بناء صنف جديد يوسع صنفاً موجوداً. هذا النمط أساسي في مكتبات مثل PyTorch حيث يرث النموذج من nn.Module.
أسئلة مراجعة
-
ما دور self في دوال الصنف؟
تشير إلى الكائن الحالي الذي استُدعيت عليه الدالة، ومن خلالها نصل إلى سماته.
-
ما فائدة الوراثة؟
إعادة استخدام سلوك صنف موجود وتوسيعه دون تكرار الشيفرة.
المصادر والمراجع
إكمال الدرس
أكملت كل دروس المسار! يمكنك الآن طلب شهادة إكمال المسار.
اطلب الشهادة