در درسهای قبلی با مفاهیم اصلی برنامهنویسی شیءگرا در پایتون آشنا شدیم. حالا وقت آن است که این مفاهیم را با تمرینهای عملی تثبیت کنیم.
تمرینهای این صفحه از ساده شروع میشوند و به تدریج ترکیبیتر میشوند. پیشنهاد میکنیم ابتدا خودتان مسئله را حل کنید و سپس پاسخ را ببینید.
- Class
- Object
- __init__
- Method
- Inheritance
- Encapsulation
- Polymorphism
تمرین ۱: ساخت کلاس Student
یک کلاس به نام Student بسازید.
این کلاس باید دو ویژگی داشته باشد:
- name
- age
سپس یک متد به نام
show_info()
ایجاد کنید که اطلاعات دانشآموز را نمایش دهد.
پاسخ
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def show_info(self):
print("Name:", self.name)
print("Age:", self.age)
student1 = Student("Ali", 20)
student1.show_info()
تمرین ۲: کلاس حساب بانکی
یک کلاس به نام BankAccount بسازید.
موجودی حساب باید به صورت یک ویژگی خصوصی
__balance
ذخیره شود.
دو متد ایجاد کنید:
deposit()برای افزایش موجودیget_balance()برای نمایش موجودی
اجازه ندهید مقدار واریزی صفر یا منفی باشد.
پاسخ
class BankAccount:
def __init__(self, balance):
self.__balance = balance
def deposit(self, amount):
if amount > 0:
self.__balance += amount
else:
print("Invalid amount")
def get_balance(self):
return self.__balance
account = BankAccount(1000000)
account.deposit(500000)
print(account.get_balance())
تمرین ۳: وراثت
یک کلاس والد به نام Person ایجاد کنید.
این کلاس باید ویژگی
name
داشته باشد.
سپس کلاس
Student
را از آن ارثبری دهید و ویژگی
student_id
را به آن اضافه کنید.
پاسخ
class Person:
def __init__(self, name):
self.name = name
class Student(Person):
def __init__(self, name, student_id):
super().__init__(name)
self.student_id = student_id
student = Student("Ali", 101)
print(student.name)
print(student.student_id)
تمرین ۴: بازنویسی متد
یک کلاس به نام
Animal
ایجاد کنید که متدی به نام
speak()
داشته باشد.
سپس دو کلاس
Dog
و
Cat
ایجاد کنید که از
Animal
ارثبری کنند.
متد
speak()
را در هر دو کلاس بازنویسی کنید.
پاسخ
class Animal:
def speak(self):
print("Animal sound")
class Dog(Animal):
def speak(self):
print("Woof")
class Cat(Animal):
def speak(self):
print("Meow")
dog = Dog()
cat = Cat()
dog.speak()
cat.speak()
تمرین ۵: چندریختی
سه کلاس به نامهای Car، Motorcycle و Truck ایجاد کنید.
هر کلاس باید متدی به نام
move()
داشته باشد که پیام مخصوص همان وسیله را نمایش دهد.
سپس Objectها را داخل یک لیست قرار دهید و با یک حلقه
متد
move()
را اجرا کنید.
پاسخ
class Car:
def move(self):
print("Car is moving")
class Motorcycle:
def move(self):
print("Motorcycle is moving")
class Truck:
def move(self):
print("Truck is moving")
vehicles = [
Car(),
Motorcycle(),
Truck()
]
for vehicle in vehicles:
vehicle.move()
تمرین ۶: پروژه کوچک مدیریت کتاب
یک کلاس به نام Book ایجاد کنید.
ویژگیهای زیر را در نظر بگیرید:
- title
- author
- pages
سپس یک متد به نام
show_info()
بنویسید که اطلاعات کتاب را نمایش دهد.
در نهایت دو Object از کلاس
Book
بسازید.
پاسخ
class Book:
def __init__(self, title, author, pages):
self.title = title
self.author = author
self.pages = pages
def show_info(self):
print("Title:", self.title)
print("Author:", self.author)
print("Pages:", self.pages)
book1 = Book(
"Python Basics",
"Ali Ahmadi",
250
)
book2 = Book(
"Learn OOP",
"Reza Ahmadi",
320
)
book1.show_info()
print()
book2.show_info()
تمرین ۷: پروژه ترکیبی OOP
در این تمرین چند مفهوم OOP را با هم ترکیب میکنیم.
یک کلاس والد به نام
Employee
ایجاد کنید که دارای
name
و
salary
باشد.
سپس دو کلاس
Developer
و
Manager
ایجاد کنید که از
Employee
ارثبری کنند.
هر کلاس باید متدی به نام
work()
داشته باشد که رفتار متفاوتی داشته باشد.
پاسخ
class Employee:
def __init__(self, name, salary):
self.name = name
self.salary = salary
def work(self):
print("Employee is working")
class Developer(Employee):
def work(self):
print(self.name, "is writing code")
class Manager(Employee):
def work(self):
print(self.name, "is managing the team")
developer = Developer("Ali", 30000000)
manager = Manager("Reza", 40000000)
employees = [developer, manager]
for employee in employees:
employee.work()
چطور بهتر تمرین کنیم؟
برای یادگیری واقعی OOP فقط خواندن کدها کافی نیست. بهتر است ابتدا پاسخ تمرین را نادیده بگیرید و خودتان تلاش کنید.
- صورت تمرین را کامل بخوانید.
- خودتان کد را بنویسید.
- کد را در VS Code اجرا کنید.
- اگر خطا داشت، خطا را بررسی کنید.
- بعد پاسخ سایت را با کد خودتان مقایسه کنید.
جمعبندی بخش OOP
با تمام شدن این بخش، با مفاهیم اصلی برنامهنویسی شیءگرا در پایتون آشنا شدید.
- Class و Object
- سازنده
__init__ - Method
- Inheritance
- Encapsulation
- Polymorphism
حالا میتوانید از این مفاهیم برای ساخت پروژههای واقعیتر استفاده کنید.