MyMisPal
→ دروس Python
الدرس 12 من 13

البرمجة الكائنية (Classes)

الكلاس (class) قالب يجمع البيانات والسلوك مع بعض. فكّر فيه مثل تصميم جدول: الصفات (attributes) هي الأعمدة، والكائن (object) هو صف فيه قيم، والدوال داخل الكلاس (methods) هي الأشياء اللي يقدر يسويها.

PYTHON
class Employee:
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

    def give_raise(self, percent):
        self.salary += self.salary * percent / 100

    def __str__(self):
        return f"{self.name}: {self.salary:.0f} SAR"

lina = Employee("Lina", 13500)
lina.give_raise(10)
print(lina)

__init__ تنفَّذ تلقائياً لما تنشئ كائن جديد، وself يشير للكائن نفسه. و__str__ تحدد كيف ينطبع الكائن.

الوراثة: كلاس جديد ياخذ كل شي من كلاس موجود ويضيف عليه:

PYTHON
class Employee:
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

    def monthly_cost(self):
        return self.salary

class Manager(Employee):
    def __init__(self, name, salary, bonus):
        super().__init__(name, salary)
        self.bonus = bonus

    def monthly_cost(self):
        return self.salary + self.bonus

team = [Employee("Sara", 9500), Manager("Khalid", 18000, 3000)]
for person in team:
    print(person.name, person.monthly_cost())

تمارين

تمرين 1

اكتب كلاس Product فيه name وprice وqty، ودالة total() ترجع السعر في الكمية.

تمرين 2

أضف لكلاس BankAccount دالة withdraw(amount): إذا المبلغ أكبر من الرصيد تطبع Insufficient funds، وغير كذا تخصمه من الرصيد.

لقيت خطأ في هذي الصفحة، أو عندك فكرة تحسّن الموقع؟