Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Classes مقابل Objects

جزء من قسم Object Oriented Programming في رحلة Python على Coddy — الدرس 3 من 64.

تخدم الفئات (Classes) والكائنات (objects) أغراضاً مختلفة. الفئة هي مخطط، بينما الكائن هو ما تبنيه من ذلك المخطط.

إليك مثال على صنف (class):

class Dog:
	# مشترك بين جميع الكلاب
    species = "Canis familiaris"

الآن يمكننا الوصول إلى سمة الفئة مباشرة باستخدام Dog.species حيث Dog هو اسم الفئة:

print(f"Class species: {Dog.species}")
# فصيلة الفئة: Canis familiaris

يقوم هذا بالوصول إلى البيانات من الفئة نفسها، وليس من أي كائن محدد.

الآن دعنا نستكشف كيف يعمل ذلك في الكائنات. قم بإنشاء كائنات من فئة Dog:

dog1 = Dog()
dog2 = Dog()

يمكن أن تمتلك الكائنات سمات فردية لا تمتلكها الفئات:

dog1.name = "Nicky"
dog1.breed = "Siberian Husky"

dog2.name = "Teemon" 
dog2.breed = "Shu'ali"

قارن بين ما يمكن أن تفعله الأصناف (classes) والكائنات (objects):

print(f"Object 1: {dog1.name} is a {dog1.breed}")
print(f"Object 2: {dog2.name} is a {dog2.breed}")
print(f"Both share class attribute: {Dog.species}")

المخرجات:

Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiaris

الفرق الرئيسي: الفئة Dog تحدد ما تشترك فيه جميع الكلاب، بينما تمثل الكائنات dog1 و dog2 كلاباً محددة وفردية بخصائص فريدة.

challenge icon

التحدي

سهل

أكمل الكود لإنشاء فئة Student وكائنين من نوع طالب. أضف أسماءً ودرجات مختلفة لكل طالب.

  • student.py: هذا هو المكان الذي ستحدد فيه فئة Student الخاصة بك.
  • driver.py: ملف التنفيذ الرئيسي الذي سيقوم باستيراد واستخدام فئة Student الخاصة بك:

    أكمل الكود لإنشاء فئة Student وكائنين من نوع طالب. أضف أسماءً ودرجات مختلفة لكل طالب.

    اسم student1 هو "Alice" مع درجة "A".

    اسم student2 هو "Bob" مع درجة "B".

ورقة مرجعية

الـ class هو مخطط يحدد السمات والسلوكيات المشتركة. أما الـ object فهو نسخة تم إنشاؤها من ذلك الـ class بخصائص فردية.

تعريف class:

class Dog:
    # سمة الـ Class - مشتركة بين جميع النسخ
    species = "Canis familiaris"

الوصول إلى سمات الـ class مباشرة:

print(Dog.species)  # Canis familiaris

إنشاء objects من class:

dog1 = Dog()
dog2 = Dog()

إضافة سمات فردية إلى الـ objects:

dog1.name = "Nicky"
dog1.breed = "Siberian Husky"

dog2.name = "Teemon"
dog2.breed = "Shu'ali"

يمكن للـ objects الوصول إلى كل من سماتها الفردية وسمات الـ class:

print(f"{dog1.name} is a {dog1.breed}")  # سمات فردية
print(f"Species: {Dog.species}")          # سمة الـ Class

جرّب بنفسك

# استيراد فئة الطالب (Student)
from student import Student

# TODO: إنشاء كائنين للطالب


# TODO: إضافة سمات للطالب الأول (student1)


# TODO: إضافة سمات للطالب الثاني (student2)


# طباعة معلومات الطالب
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Object Oriented Programming