جلسه بیست و نهم
ادامه مبحث شی گرایی
برای دسترسی به متود های کلاس باید یک شی از کلاس ایجاد کنیم.
مثال 1:ساخت کلاس سگ.
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
return "Woof!"
# ساخت یک نمونه از کلاس Dog
dog1 = Dog("Buddy", 3)
# فراخوانی متد bark بر روی نمونه dog1
print(dog1.bark())
تابع سازنده 2 ورودی دارد.
این یک مثال ساده از پیادهسازی کلاس Dog است. بیایید به تک تک قسمتهای آن نگاهی بیندازیم:
1. **تعریف کلاس `Dog`**:
– کلاس `Dog` تعریف شده است که دو ویژگی (`name` و `age`) و یک متد (`bark`) را در خود دارد.
2. **متد `__init__`**:
– این متد ویژه کلاس است که به عنوان سازنده (constructor) عمل میکند و هنگام ایجاد نمونهای از کلاس فراخوانی میشود.
– در این متد، مقادیر اولیه ویژگیهای `name` و `age` از طریق پارامترهای ورودی تعیین میشوند.
– مقادیر پارامترها به ویژگیهای شیء (instance attributes) اختصاص داده میشوند.
3. **متد `bark`**:
– این متد هیچ پارامتری ندارد و تنها یک رشته `”Woof!”` را بازگشت میدهد.
4. **ایجاد نمونهای از کلاس `Dog`**:
– با استفاده از عبارت `dog1 = Dog(“Buddy”, 3)` یک نمونه از کلاس `Dog` با نام `dog1` ایجاد میشود.
– در این مرحله، متد `__init__` فراخوانی شده و مقادیر `”Buddy”` و `3` به عنوان نام و سن به ویژگیهای شیء اختصاص داده میشوند.
5. **فراخوانی متد `bark`**:
– با استفاده از عبارت `dog1.bark()` متد `bark` بر روی شیء `dog1` فراخوانی میشود.
– از آنجایی که این متد هیچ پارامتری ندارد، تنها رشته `”Woof!”` به عنوان خروجی چاپ میشود.
در مجموع، این کد یک کلاس ساده `Dog` را تعریف میکند که دارای دو ویژگی (`name` و `age`) و یک متد (`bark`) است. سپس یک نمونه از این کلاس با مقادیر مشخص ایجاد شده و متد `bark` بر روی آن فراخوانی میشود.
مثال 2: ساخت کلاس دایره.
class Circle:
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius ** 2
# ساخت یک نمونه از کلاس Circle
circle1 = Circle(5)
# فراخوانی متد area بر روی نمونه circle1
print(circle1.area())
مثال 3:کلاس دانش آموز.
class Student:
def __init__(self, first_name, last_name, birth_year):
self.first_name = first_name
self.last_name = last_name
self.birth_year = birth_year
def calculate_age(self, current_year):
age = current_year - self.birth_year
return age
# ساخت یک شیء (دانشجو)
student1 = Student("علی", "احمدی", 2000)
# استفاده از ویژگیهای شیء
print(student1.first_name) # خروجی: علی
print(student1.last_name) # خروجی: احمدی
# استفاده از تابع شیء
current_year = 2023
age = student1.calculate_age(current_year)
print(age) # خروجی: 23
تابع سازنده 3 ورودی دارد.