מדריך למתחילים לשיעורי Python ואובייקטים

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

מה זה מחלקה?

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

# Defining a simple class
class Dog:
    # Class attribute
    species = "Canis familiaris"

    # Initializer / Instance attributes
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # Instance method
    def description(self):
        return f"{self.name} is {self.age} years old"

    # Another instance method
    def speak(self, sound):
        return f"{self.name} says {sound}"

מהו אובייקט?

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

# Creating an object of the Dog class
my_dog = Dog("Buddy", 5)

# Accessing attributes and methods
print(my_dog.description())  # Output: Buddy is 5 years old
print(my_dog.speak("Woof"))  # Output: Buddy says Woof

שיטת __init__

שיטת __init__ היא שיטה מיוחדת ב-Python, הידועה גם בתור בנאי. זה נקרא אוטומטית כאשר נוצר מופע חדש של המחלקה. השיטה __init__ משמשת לאתחול התכונות של המחלקה. הוא מוגדר באמצעות מילת המפתח def, ואחריה שם השיטה __init__ ו-self, המתייחס למופע של המחלקה.

# Example of using the __init__ method
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# Creating an object of the Person class
person1 = Person("Alice", 30)
print(person1.name)  # Output: Alice
print(person1.age)   # Output: 30

תכונות מופע לעומת תכונות מחלקות

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

# Example of class and instance attributes
class Car:
    # Class attribute
    wheels = 4

    def __init__(self, color, brand):
        # Instance attributes
        self.color = color
        self.brand = brand

# Creating objects of the Car class
car1 = Car("Red", "Toyota")
car2 = Car("Blue", "Honda")

print(car1.wheels)  # Output: 4
print(car2.wheels)  # Output: 4
print(car1.color)   # Output: Red
print(car2.color)   # Output: Blue

שיטות בשיעורי פייתון

מתודות הן פונקציות המוגדרות בתוך מחלקה המתארות את התנהגויות האובייקטים. ישנם סוגים שונים של שיטות במחלקות Python:

  • שיטות מופע: אלו הן הסוג הנפוץ ביותר של שיטות הפועלות על מופע של המחלקה. הם יכולים לשנות את מצב האובייקט ולדרוש התייחסות לאובייקט, בדרך כלל self.
  • Class Methods: שיטות אלו מסומנות עם הדקורטור @classmethod ולוקחות התייחסות למחלקה עצמה כפרמטר הראשון, הנקרא בדרך כלל cls.
  • שיטות סטטיות: שיטות אלו מסומנות עם הדקורטור @staticmethod ואינן דורשות התייחסות לא למופע ולא למחלקה. הם מתנהגים כמו פונקציות רגילות אבל שייכים למרחב השמות של המחלקה.
# Example of instance, class, and static methods
class MathOperations:
    # Class attribute
    pi = 3.14

    # Instance method
    def square(self, number):
        return number ** 2

    # Class method
    @classmethod
    def circle_area(cls, radius):
        return cls.pi * (radius ** 2)

    # Static method
    @staticmethod
    def add(x, y):
        return x + y

# Using different types of methods
math = MathOperations()
print(math.square(4))             # Output: 16 (Instance method)
print(MathOperations.circle_area(5))  # Output: 78.5 (Class method)
print(MathOperations.add(3, 7))   # Output: 10 (Static method)

ירושה בפייתון

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

# Example of inheritance
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        return f"{self.name} makes a sound"

# Child class inheriting from Animal
class Cat(Animal):
    def speak(self):
        return f"{self.name} says Meow"

# Creating objects of the parent and child classes
animal = Animal("Generic Animal")
cat = Cat("Whiskers")

print(animal.speak())  # Output: Generic Animal makes a sound
print(cat.speak())     # Output: Whiskers says Meow

מַסְקָנָה

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