Python Object Oriented Python Object Oriented Python Object Oriented
شی گرایی در پایتون
پایتون یک زبان برنامه نویسی شی گرا (Object Oriented Programming) یا به اختصار OOP است.
تقریبا هر چیزی در پایتون یک شی است، با خواص و متد های خود.
یک کلاس (Class) در واقع پروتوتایپ یا طرحی است که اشیا از روی آن ساخته می شوند.
ساخت کلاس در پایتون
برای ساخت کلاس در پایتون از کلمه کلیدی class استفاده می کنیم.
در مثال زیر یک کلاس به نام MyClass ایجاد کرده ایم که یک خاصیت (Property) به نام x دارد:
1 2 | class MyClass: x = 5 |
ساخت شی در پایتون
حالا می توانیم از روی کلاس MyClass یک شی ایجاد کنیم.
در مثال زیر یک شی به نام p1 ایجاد کرده ایم و مقدار x را چاپ می کنیم:
1 2 | p1 = MyClass() print(p1.x) |
تابع __init__
مثال های بالا اشیا و کلاس ها را در شکل ساده خودشان بودند و در برنامه های واقعی کاربرد مفیدی ندارند.
برای درک مفهوم کلاس ما باید تابع ()__init__ را درک کنیم.
تمام کلاس ها تابعی به نام ()__init__ دارند که همیشه هنگامی که کلاس برای ایجاد شی فراخوانی می شود، به صورت خودکار اجرا می شود.
از این تابع برای مقدار اولیه به خواص اشیا یا هر عملی که لازم است تا هنگام تعریف ش انجام شود، استفاده می شود.
در مثال زیر هنگام ایجاد شی p1 ، خواص شی را مقداردهی کرده ایم:
1 2 3 4 5 6 7 8 9 | class Person: def __init__(self, name, age): self.name = name self.age = age p1 = Person("John", 36) print(p1.name) print(p1.age) |
توابع یا متد های شی در پایتون
اشیا می توانند متد نیز داشته باشند.
متد در اشیا در واقع توابعی هستند که به شی تعلق دارند.
در مثال زیر متدی برای کلاس person تعریف کرده ایم که یک خوشامد گویی را چاپ می کند.
برای دسترسی به خواص و متد های شی از . (نقطه) استفده می کنیم:
1 2 3 4 5 6 7 8 9 10 | class Person: def __init__(self, name, age): self.name = name self.age = age def myfunc(self): print("Hello my name is " + self.name) p1 = Person("John", 36) p1.myfunc() |
خروجی
1 2 | C:\Users\My Name>python demo_class5.py Hello my name is John |
مقداردهی به خواص شی در پایتون
برای مقداردهی به خواص شی به صورت زیر عمل می کنیم:
1 | p1.age = 40 |
حذف خواص شی در پایتون
برای حذف یک خاصیت از شی، از کلمه کلیدی del استفاده می کنیم:
1 | del p1.age |
همچنین از این کلمه کلیدی می توانیم برای حذف خود اشیا نیز استفاده کنیم:
1 | del p1 |