🧱 شیءگرایی در پایتون (کلاس)
📘 آموزش کامل کلاس، اشیاء، متدها و ۱۰ پروژه
🔷 کلاس (Class) چیست؟
🔹 self : ارجاع به نمونه فعلی
🔹 متد: تابع داخل کلاس
🔹 attribute: ویژگیهای شیء
🔹 inheritance: ارثبری
۱ کلاس کتاب
def __init__(self, title, author, year):
self.title = title
self.author = author
self.year = year
def info(self):
return f”کتاب: {self.title} – نویسنده: {self.author} ({self.year})”
b = Book(“جنایات و مکافات”, “داستایفسکی”, ۱۸۶۶)
print(b.info())
۲ کلاس دانشجو
def __init__(self, name, std_id, gpa):
self.name = name
self.std_id = std_id
self.gpa = gpa
def is_passed(self):
return self.gpa >= 12
s = Student(“زهرا محمدی”, “۴۰۱۱۲۳”, ۱۷٫۵)
print(f”دانشجو: {s.name} – قبول: {s.is_passed()}”)
۳ کلاس مستطیل
def __init__(self, length, width):
self.length = length
self.width = width
def area(self):
return self.length * self.width
def perimeter(self):
return 2*(self.length + self.width)
r = Rectangle(6,4)
print(f”مساحت: {r.area()}, محیط: {r.perimeter()}”)
۴ کلاس حساب بانکی
def __init__(self, balance=0):
self.balance = balance
def deposit(self, amount):
self.balance += amount
return f”واریز شد. موجودی: {self.balance}”
def withdraw(self, amount):
if amount <= self.balance:
self.balance -= amount
return f”برداشت شد. موجودی: {self.balance}”
return “موجودی کافی نیست”
acc = BankAccount(25000)
print(acc.withdraw(30000))
۵ کلاس ماشین
def __init__(self, brand, model, speed=0):
self.brand = brand
self.model = model
self.speed = speed
def accelerate(self, increase):
self.speed += increase
def brake(self, decrease):
self.speed = max(0, self.speed – decrease)
def show_speed(self):
return f”سرعت فعلی: {self.speed}”
car = Car(“Toyota”, “Corolla”, 80)
car.accelerate(40)
print(car.show_speed())
۶ کلاس ساعت دیجیتال
بعد از tick: 23:59:59
def __init__(self, h, m, s):
self.h = h
self.m = m
self.s = s
def tick(self):
self.s += 1
if self.s == 60:
self.s = 0
self.m += 1
if self.m == 60:
self.m = 0
self.h = (self.h + 1) % 24
def display(self):
return f”{self.h:02d}:{self.m:02d}:{self.s:02d}”
c = Clock(23,59,58)
print(“زمان:”, c.display())
c.tick()
print(“بعد از tick:”, c.display())
۷ کلاس مدرسه و دانشآموز
def __init__(self, name):
self.name = name
class Student:
def __init__(self, name, school):
self.name = name
self.school = school
def introduce(self):
return f”{self.name} در مدرسه: {self.school.name} تحصیل میکند.”
sch = School(“راه رشد”)
std = Student(“علی”, sch)
print(std.introduce())
۸ کلاس کارمند
def __init__(self, name, salary):
self.name = name
self.salary = salary
def increase(self, percent):
self.salary += self.salary * percent / 100
return self.salary
emp = Employee(“رضا”, ۵۰۰۰۰۰۰)
new_salary = emp.increase(15)
print(f”حقوق بعد از ۱۵٪ افزایش: {int(new_salary)} تومان”)
۹ کلاس مستطیل + classmethod
def __init__(self, w, h):
self.w = w
self.h = h
@classmethod
def square(cls, side):
return cls(side, side)
def area(self):
return self.w * self.h
sq = Rectangle.square(5)
print(f”مساحت مربع به ضلع ۵: {sq.area()}”)
۱۰ ارثبری: حیوان و سگ
سگ میگوید: واق واق
def sound(self):
return “…”
class Dog(Animal):
def sound(self):
return “واق واق”
a = Animal()
d = Dog()
print(“حیوان صدا میکند:”, a.sound())
print(“سگ میگوید:”, d.sound())
