מחלקות לעומת אובייקטים
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Python של Coddy. שיעור 3 מתוך 64.
מחלקות ואובייקטים משרתים מטרות שונות. מחלקה היא תבנית, ואילו אובייקט הוא מה שבונים על סמך התבנית הזאת.
הנה דוגמה למחלקה:
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"השוו בין מה שמחלקות ואובייקטים יכולים לעשות:
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 מייצגים כלבים מסוימים ואינדיבידואליים בעלי מאפיינים ייחודיים.
אתגר
קלהשלם את הקוד כדי ליצור מחלקה Student ושני אובייקטים של תלמידים. הוסף לכל תלמיד שם וציון שונים.
student.py: כאן תגדיר את המחלקהStudentשלך.driver.py: קובץ ההרצה הראשי שייבא את מחלקת Student שלך וישתמש בה:השלם את הקוד כדי ליצור מחלקה
Studentושני אובייקטים של תלמידים. הוסף לכל תלמיד שם וציון שונים.שם student1 הוא
"Alice"והציון שלו הוא"A".שם student2 הוא
"Bob"והציון שלו הוא"B".
נסו בעצמכם
# ייבא את המחלקה 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}")השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים (OOP)
קבצים חיצונייםמבוא ל-OOPמחלקות לעומת אובייקטיםהפרמטר selfמתודותמאפייניםשיטת הבנאי (__init__)חזרה: מחשבון פשוט5פולימורפיזם
בחינה מחדש של דריסת מתודותטיפוסיות ברווזמחלקות ומתודות אבסטרקטיותעיצוב ממשקיםסיכום – מחשבון צורות8מושגים מתקדמים בתכנות מונחה עצמים
קומפוזיציה לעומת הורשהMixinsמתודות סטטיות ומתודות מחלקהדקורטורים למחלקותמנהלי הקשרתרגלו בעצמכם: קומפיילר Python אונליין