مفاهیم شی گرایی در پایتون
برنامه نویسی شی گرا (OOP) یک رویکرد برای برنامه نویسی است که بر اساس اشیاء و کلاس ها بنا شده است. اشیاء موجودیت های مستقلی هستند که شامل داده و رفتار مرتبط با آن داده هستند. کلاس ها به عنوان الگویی برای ایجاد اشیاء عمل می کنند.
مفاهیم اصلی شی گرایی در پایتون:
- کلاس: یک الگو برای ایجاد اشیاء است.
- شیء: یک نمونه از یک کلاس است.
- ویژگی: یک متغیر یا داده ای است که به یک شیء تعلق دارد.
- متد: یک تابع یا عملی است که یک شیء می تواند انجام دهد.
- وراثت: توانایی یک کلاس برای به ارث بردن ویژگی ها و متدهای کلاس دیگر است.
- چندریختی: توانایی یک شیء برای پاسخ به یک پیام به روش های مختلف بسته به نوع آن است.
مثال:
فرض کنید می خواهیم برنامه ای برای مدیریت اطلاعات دانش آموزان بنویسیم.
کلاس:
Python
class Student:
def __init__(self, name, age, grade):
self.name = name
self.age = age
self.grade = grade
def print_info(self):
print(f"نام: {self.name}")
print(f"سن: {self.age}")
print(f"معدل: {self.grade}")
شیء:
Python
student1 = Student("علی", ۱۸, ۱۹)
student2 = Student("فاطمه", ۱۷, ۱۸)
ویژگی:
name
age
grade
متد:
print_info()
استفاده از اشیاء:
Python
student1.print_info()
student2.print_info()
خروجی:
نام: علی
سن: ۱۸
معدل: ۱۹
نام: فاطمه
سن: ۱۷
معدل: ۱۸
مزایای برنامه نویسی شی گرایی:
- خوانایی: کد را خواناتر و قابل فهم تر می کند.
- قابلیت نگهداری: کد را قابل نگهداری و ارتقا پذیرتر می کند.
- قابلیت استفاده مجدد: کد را قابل استفاده مجدد در برنامه های دیگر می کند.
- مقیاس پذیری: کد را مقیاس پذیرتر و قابل توسعه تر می کند.
-
کلاس:
- برای تعریف یک کلاس از کلمه کلیدی
class
استفاده میشود. - یک کلاس شامل ویژگیها (متغیرها) و روشها (توابع) است.
- مثال:
- برای تعریف یک کلاس از کلمه کلیدی
Python
class Person:
# ویژگیها
name = ""
age = ۰
# روشها
def greet(self):
print(f"Hello, my name is {self.name}")
-
شیء:
- برای ایجاد یک شیء از کلمه کلیدی
new
استفاده میشود. - یک شیء نمونهای از یک کلاس است.
- مثال:
- برای ایجاد یک شیء از کلمه کلیدی
Python
person1 = Person()
person1.name = "John Doe"
person1.age = ۳۰
person2 = Person()
person2.name = "Jane Doe"
person2.age = ۲۵
person1.greet()
person2.greet()
-
وراثت:
- یک کلاس میتواند از کلاس دیگر وراثت ببرد.
- کلاس فرزند ویژگیها و روشهای کلاس پدر را به ارث میبرد.
- مثال:
Python
class Employee(Person):
# ویژگیها
salary = ۰
# روشها
def work(self):
print(f"{self.name} is working")
employee1 = Employee()
employee1.name = "John Doe"
employee1.age = ۳۰
employee1.salary = ۱۰۰۰۰۰
employee1.greet()
employee1.work()
-
چندریختی:
- توانایی یک شیء برای پاسخگویی به یک پیام به روشهای مختلف، بسته به نوع آن.
- مثال:
Python
class Animal:
def speak(self):
raise NotImplementedError
class Dog(Animal):
def speak(self):
print("Woof!")
class Cat(Animal):
def speak(self):
print("Meow!")
dog1 = Dog()
cat1 = Cat()
dog1.speak()
cat1.speak()