الفئات والطريقة __init__
عرّف الفئات وأنشئ الكائنات وهيّئ السمات
الفئات والطريقة __init__ درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.
تعريف فئة
استخدم الكلمة المفتاحية class لتعريف فئة. convention المتّبع هو استخدام نمط CapWords لأسماء الفئات.
class Dog:
pass
fido = Dog()
print(type(fido)) # <class '__main__.Dog'>الطريقة __init__
يُستدعى __init__ تلقائيًا عند إنشاء كائن. استخدمه لتهيئة سمات المثيل.
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
fido = Dog("Fido", "Labrador")
print(fido.name) # Fidoشرح self
يشير self إلى المثيل الحالي. ويجب أن يكون المعلمة الأولى في كل طريقة مثيل. تمرّره Python تلقائيًا.
class Counter:
def __init__(self):
self.count = 0
def increment(self):
self.count += 1
c = Counter()
c.increment()
print(c.count) # 1مثيلات متعددة
يمتلك كل مثيل نسخته الخاصة من سمات المثيل التي عُيّنت في __init__.
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
p1 = Point(1, 2)
p2 = Point(5, 7)
print(p1.x, p2.x) # 1 5القيم الافتراضية للمعلمات في __init__
امنح معلمات __init__ قيمًا افتراضية لجعل بعض الوسائط اختيارية.
class Circle:
def __init__(self, radius=1.0):
self.radius = radius
c1 = Circle()
c2 = Circle(5)
print(c1.radius, c2.radius) # 1.0 5طرق المثيل
تعمل الطرق المعرّفة داخل الفئة على المثيل من خلال self.
class Rectangle:
def __init__(self, w, h):
self.w = w
self.h = h
def area(self):
return self.w * self.h
r = Rectangle(4, 5)
print(r.area()) # 20إضافة سمات بعد الإنشاء
يمكنك إضافة سمات إلى مثيل بعد إنشائه، لكن من الأنظف التصريح عنها جميعًا في __init__.
class Person:
def __init__(self, name):
self.name = name
p = Person("Alice")
p.age = 30 # added after creation
print(p.name, p.age)القيمة المُعادة من __init__
يجب أن يُعيد __init__ القيمة None. ويؤدي إرجاع أي قيمة أخرى إلى رفع استثناء TypeError.
class Broken:
def __init__(self):
return 42 # TypeError!
# Correct
class OK:
def __init__(self):
self.value = 42
# implicit return Noneالتحقق من نوع المثيل
استخدم isinstance() للتحقق مما إذا كان الكائن مثيلًا لفئة معينة.
class Animal:
pass
class Dog(Animal):
pass
d = Dog()
print(isinstance(d, Dog)) # True
print(isinstance(d, Animal)) # Trueالسمة __dict__
يخزّن كل مثيل سماته في قاموس __dict__.
class Book:
def __init__(self, title, pages):
self.title = title
self.pages = pages
b = Book("Python 101", 300)
print(b.__dict__) # {'title': 'Python 101', 'pages': 300}حذف السمات
استخدم del لإزالة سمة من مثيل أثناء تشغيل البرنامج.
class Config:
def __init__(self):
self.debug = True
self.version = "1.0"
cfg = Config()
del cfg.debug
print(hasattr(cfg, "debug")) # Falseتحقق سريع
ما الغرض من self في طرق الفئات في Python؟
مراجعة
الفئات مخططات لإنشاء الكائنات. يهيّئ __init__ سمات المثيل، ويشير self إلى الكائن الحالي، ويحافظ كل مثيل على قاموس سماته الخاص.
الأسئلة الشائعة
هل درس «الفئات والطريقة __init__» مجاني؟
نعم — نص درس «الفئات والطريقة __init__» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.
ماذا ستتعلم في «الفئات والطريقة __init__»؟
عرّف الفئات وأنشئ الكائنات وهيّئ السمات تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟
لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «الفئات والطريقة __init__»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟
نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الفئات والطريقة __init__
- سمات الكائنات مقابل سمات الفئات
- طرق الكائن وself
- الطرق السحرية: __str__ و__repr__