פייתון/פייתון גרסה 3/פולימורפיזם

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
קפיצה לניווט קפיצה לחיפוש

פולימורפיזם[עריכה]

קיימים מתודות שפועלות באופן שונה בטיפוסים. תכונה זו נקראת פולימורפיזם.

למשל הפעלה מוגדרת על ידי המתודה __add__.

הפעולה היא פעולה שונה עבור טיפוסים שונים.

למשל עבור מחרוזת היא מוגדרת שרשור ואילו עבור מספרים מבצעת פעולת חשבון - חיבור.

למה זה טוב?[עריכה]

נניח נרצה ליצור אובייקט חדש שתפעל עליו פונקצית len. נוכל להשתמש בפונקצית len() עבור אובייקט חדש באמצעות הגדרת המתודה len באותו אוביקט:

class Book:

   def __init__(self, title, pages):
      self.title = title
      self.pages = pages

   def __len__(self):
      return self.pages

book = Book("Man's Search for Meaning", 200)

print(len(book))
>>>200

בזה הרגע יצרנו מחלקה ואובייקט חדש. על פניו אין להם שום קשר להגדרות הקיימות בפייתון אך הנה באמצעות שימוש במותדות מוסכמות - הצלחנו להגדיר על האובייקט החדש שימוש בפונקציה שהייתה קיימת במערכות פייתון!