معرفی زبان پایتون
قبل از اینکه به بحث اصلی یعنی کلاس پایتون بپردازیم، بهتر است زبان برنامه نویسی پایتون را معرفی کنیم چون احتمال دارد کسی وارد این پست شود که اطلاعاتی در مورد پایتون ندارد و میخواهد بیشتر آشنا شود. وقتی پایتون را با زبان انگلیسی در گوگل سرچ میکنید به احتمال زیاد عکس مار را خواهید دید؛ شاید در ذهن شما سوال ایجاد شود که احتمالاً نام این زبان را به خاطر مار پایتون گذاشتهاند.
من هم چنین ذهنیتی داشتم اما وقتی تحقیق کردم به این نتیجه رسیدم که یک برنامه کمدی تلویزیونی به نام مونتی پایتون وجود داشته و نام این زبان از این برنامه برگرفته شده است. پایتون زبان برنامه نویسی پرطرفدار است که پیاده سازی آن از سال ۱۹۸۹ شروع شد. کسانی که در برنامه نویسی تازه کار هستند میتوانند پایتون را به عنوان یک زبان نسبتاً ساده یاد بگیرند.
ویژگی های زبان پایتون
از ویژگیهای زبان پایتون به چندمورد اشاره میکنیم:
- یادگیری آسان: یادگیری پایتون آسان است به این دلیل که یک زبان برنامه نویسی سطح بالا و رسا است به این معنی که درک زبان و یادگیری را آسان میکند.
- چند پلتفرمی: پایتون بر روی سیستم عاملهای مختلف مانند ویندوز، لینوکس، یونیکس و غیره قابل اجرا است.
- اوپن سورس: پایتون یک زبان برنامه نویسی متن باز است.
- کتابخانه بزرگ استاندارد: پایتون با یک کتابخانه استاندارد بزرگ عرضه شد که دارای کدهایی است که برنامه نویس هنگام نوشتن کد در پایتون میتواند از آن استفاده کند.
- رایگان: پایتون را میتوان به صورت رایگان دانلود کرد و در برنامه خود استفاده کرد.
- مدیریت خودکار حافظه: پایتون از مدیریت خودکار حافظه پشتیبانی میکند به این معنی که حافظه به صورت خودکار پاک و آزاد میشود و نیازی نیست برنامه نویس خودش حافظه را پاک کند.
یادگیری زبان پایتون آسان است فقط با کمی تمرین و تکرار و استفاده از آموزش های اصولی و استاندارد، می توان این زبان برنامه نویسی را بخوبی یاد گرفت. برای شروع یادگیری پایتون می توانید از منابع آموزشی همچون فرادرس استفاده کنید.
کاربرد های زبان پایتون
پایتون هم مانند زبانهای دیگر کاربردهایی دارد که به چند مورد اشاره میکنیم:
- توسعه وب: فریمورک وب مانند جنگو و فلاسک بر پایه پایتون ایجاد شدهاند. این فریمورکها کمک میکنند تا کد سمت سرور را بنویسید و این مورد باعث میشود در مدیریت پایگاه داده و کدنویسی بک اند(backend) عملکرد خوبی داشته باشید.
- یادگیری ماشین: ما در طول روز از الگوریتم یادگیری ماشین استفاده میکنیم؛ وقتیکه در گوگل به جستجو میپردازیم و گوگل لیست نتایج را نشان میدهد از یادگیری ماشین یا هوش مصنوعی استفاده کردیم.
- تجزیه و تحلیل دادهها: تجزیه و تحلیل دادهها در قالب نمودار نیز میتواند با استفاده از پایتون توسعه یابد.
- اسکریپت نویسی: کد نویسی برنامههای کوچک برای کارهای ساده مانند ارسال ایمیل های پاسخ خودکار و غیره است. چنین نوع برنامههایی را می توان به زبان برنامه نویسی پایتون نیز نوشت.
- توسعه بازی: میتوان بازیها را با استفاده از پایتون توسعه داد.
- توسعه برنامههای دسکتاپ: برنامه نویس میتواند برنامه دسکتاپ را در پایتون با استفاده از کتابخانه هایی مانند TKinter توسعه دهد.
تعریف کلاس در پایتون
اگر پستهای قبلی را در مورد کلاس خوانده باشید معنای کلاس و اشیاء را خواهید فهمید. کلاس به عنوان یک الگوی اولیه از یک شیء است. برای درک بیشتر این مثال را در نظر بگیرید، فرض میکنیم یک کلاس نمونه اولیه یک ساختمان است. ساختمان دارای ویژگیهایی مثل کف، اتاقها، درها، پنجرهها و غیره است. حالا اگر کمی دقت کنید متوجه میشوید که با استفاده از این ویژگیها میتوان هر تعداد ساختمان ساخت. پس میتوان ساختمان را به عنوان یک کلاس دید و میتوان به همان تعداد شی از این کلاس ایجاد کرد.
در ادامه آموزش کلاس پایتون در مورد نحوه دسترسی به یک ویژگی کلاس با استفاده از شیء نیز صحبت خواهیم کرد.
نحوه ایجاد کلاس در پایتون
اگر به برنامه نویسی شی گرا علاقمند هستید و میخواهید با پایتون برنامه نویسی شی گرا را انجام دهید، باید در نظر داشته باشید که ابتدا نحوه ایجاد کلاس پایتون را یاد بگیرید. شاید برای افراد مبتدی سوال ایجاد شود که برنامه نویسی شی گرا چه کمکی به ما میکند؟ شی گرایی کمک میکند تا کدهای خواناتر و شبیه به دنیای واقعی بنوبسید. همانطور که قبلاً گفتیم کلاس مانند قالب یا طرح برای اشیاء است. برای ایجاد کلاس در پایتون از کلمه کلیدی class و نام کلاس استفاده میکنیم.
با یک مثال نحوهی ایجاد کلاس در پایتون را نشان میدهیم:
class ClassName : #statement_suite
کلاس شامل مجموعه دستورات مثل تعریف فیلد، تابع و غیره است. در مثال زیر برای ایجاد یک کلاس، نام Employee در نظر گرفته شده که شامل دو فیلد با عنوان Employee id و name است. کلاس Employee همچنین دارای تابع ()display است که برای چاپ اطلاعات استفاده می شود.
class Employee : id = 10 name = "Devansh" def display (self): print(self.id,self.name)
مثال ساده دیگری را میآوریم که مبحث کلاس پایتون را بهتر یاد بگیرید. یک کلاس به نام MyClass با ویژگی به نام x ایجاد میکنیم:
class MyClass : x = 5 print(MyClass)
خروجی:
<class '__main__.MyClass'>
نحوه ایجاد شی در پایتون
اکنون میتوانیم با استفاده از کلاسی که تعریف کردیم برای ایجاد شی در پایتون استفاده کنیم. مثال زیر یک شی به نام p1 ایجاد و مقدار x را چاپ میکند:
p1 = MyClass() print(p1.x)
خروجی:
۵
تابع ()__init__ در پایتون
تا اینجای پست، مثالهایی استفاده کردیم که هم ساده باشد و هم قابل فهم؛ اما این مثالها در برنامههای واقعی کاربردی نیستند. برای اینکه معنای کلاسها را بیشتر درک کنید باید با تابع ()__init__ آشنایی داشته باشید. همهی کلاسها دارای تابعی به نام ()__init__ هستند که در زمان راه اندازی کلاس اجرا میشود. از تابع ()__init__ برای اختصاص مقادیر و مقداردهی اولیه که در هنگام ایجاد شیء انجام میشود، استفاده میکنند.
برای توضیحات بیشتر یک مثال میزنیم. در این مثال، یک کلاس به نام Person ایجاد کردیم و از تابع ()__init__ برای اختصاص مقادیر نام و سن استفاده میکنیم:
class Person: def __init__(self, name, age): self.name = name self.age = age p1 = Person("John", 36) print(p1.name) print(p1.age)
خروجی به شکل زیر خواهد بود:
John ۳۶
هر زمان که کلاس برای ایجاد یک شیء جدید استفاده میشود، تابع ()__init__ به صورت خودکار فراخوانی خواهد شد.
متد در پایتون
احتمالاً میدانید که پایتون زبان شی گرا است؛ این جمله به این معنی است که میتواند با کلاس و اشیاء برای مدلسازی دنیای واقعی سروکار داشته باشد. متد در پایتون مانند تابع است، با این فرق که باید روی شیء فراخوانی شود و برای ایجاد متد باید آن را در کلاس قرار داد. در مثال زیر متدی در کلاس Person ایجاد میکنیم. تابعی را وارد میکنیم که آن را روی شی p1 اجرا کند:
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()
خروجی به شکل زیر خواهد بود:
Hello my name is John
نحوه اضافه کردن متد به کلاس
بیایید این موضوع را با یک مثال توضیح دهیم، متدی به نام Welcome را به کلاس Student اضافه کردیم:
class Person : def __init__(self, fname, lname): self.firstname = fname self.lastname = lname def printname self :() print(self.firstname, self.lastname) class Student Person :() def __init__(self, fname, lname, year) : super().__init__(fname, lname) self.graduationyear = year def welcome self () print()"Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear : x = Student("Mike", "Olsen", 2019 x.welcome ()
مفهوم self در پایتون
پارامتر self به نمونه فعلی کلاس اشاره دارد و برای دسترسی به متغیرهایی که متعلق به کلاس هستند استفاده میشود. لازم نیست self را نامگذاری کنید، اما باید اولین پارامتر هر تابع در کلاس باشد. در برنامه نویسی شی گرا، وقتیکه متدها را برای یک کلاس تعریف میکنیم، از self به عنوان اولین پارامتر استفاده میکنیم. در مثال زیر به جای self از کلمات mysillyobject و abc استفاده کردیم:
class Person: def __init__(mysillyobject, name, age): mysillyobject.name = name mysillyobject.age = age def myfunc(abc): print("Hello my name is " + abc.name) p1 = Person("John", 36) p1.myfunc()
خروجی قابل مشاهده است:
Hello my name is John
پارامتر self یکی از مباحث مبهم در پایتون است؛ برای اینکه بیشتر با این پارامتر آشنا شوید یک مثال دیگر را نگاه کنید. به تعریف کلاسی به نام Cat نگاه کنید:
class Cat : def __init__(self, name, age) ; self.name = name self.age = age def info self : () print(f"I am a cat. My name is {self.name}. I am {self.age} years old.") def make_soundself () print"Meow"()
کلمه کلیدی self برای نمایش یک شیء از کلاس داده شده، استفاده میشود. در مثال بالا دو شی Cat cat1 و cat2 دارای نام و سن خاص خود هستند. اگر پارامتر self وجود نداشت، کلاس نمیتوانست اطلاعات را برای هر دو شیء نگه دارد. به هر حال، از آنجایی که کلاس فقط یک طرح اولیه است، self اجازه دسترسی به ویژگی ها و متدهای هر شی را در پایتون میدهد. self به هر شیء اجازه میدهد تا ویژگیها و متدهای خاص خود را داشته باشد.
نحوه اصلاح ویژگی های شی در پایتون
میتوان ویژگی های اشیاء را مانند این مثال تغییر داد.
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.age = 40 print(p1.age)
۴۰
در این مثال سن p1 روی ۴۰ تنظیم شده است.
نحوه حذف ویژگی های شی در پایتون
با استفاده از کلمه کلیدی del می توانی خصوصیات اشیاء را حذف کرد. برای مثال در این برنامه ویژگی age از شیء p1 حذف شده است:
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) del p1 print(p1)
خروجی به اینصورت خواهد بود:
(Traceback (most recent call last : File "demo_class7.py", line 13, in <module> print(p1.age) AttributeError: 'Person' object has no attribute 'age'
حذف اشیا در پایتون
با استفاده از کلمه کلیدی del میتوانید اشیاء را حذف کنید. در مثال زیر شی p1 را حذف کردیم:
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) del p1 print(p1)
خروجی به این شکل خواهد بود:
Traceback (most recent call last : File "demo_class8.py", line 13, in <module> print(p1) NameError: 'p1' is not defined
به مثال دیگری توجه کنید:
class Employee: id = 10 name = "John" def display(self): print("ID: %d \nName: %s" % (self.id, self.name)) # Creating a emp instance of Employee class emp = Employee() # Deleting the property of object del emp.id # Deleting the object itself del emp emp.display()
مفهوم وراثت در پایتون
وراثت یا ارثبری در پایتون باعث میشود کلاسی تعریف کنیم که تمام متدها و ویژگیها را از کلاس دیگری به ارث میبرد. کلاس والد کلاسی است که از آن به ارث برده شده است به کلاس والد، کلاس پایه هم میگویند. کلاس فرزند کلاسی است که از کلاس دیگری به ارث میبرد که به آن کلاس مشتق شده هم میگویند.
ایجاد کلاس والد در پایتون
هر کلاس پایتون میتواند به عنوان یک کلاس والد باشد، بنابراین ساختار آن مانند ایجاد کلاس است. در مثال زیر یک کلاس به نام Person با مشخصات نام و نام خانوادگی و متد printname ایجاد کردیم:
class Person: def __init__(self, fname, lname): self.firstname = fname self.lastname = lname def printname(self): print(self.firstname, self.lastname) #Use the Person class to create an object, and then execute the printname method: x = Person("John", "Doe") x.printname()
John Doe
ایجاد کلاس فرزند در پایتون
وقتی میخواهید کلاسی را ایجاد کنید که عملکرد را از کلاس دیگری به ارث میبرد، زمان ایجاد کلاس فرزند، کلاس والد را به عنوان پارامتر ارسال کنید. برای توضیحات بیشتر به مثال زیر دقت کنید. در این مثال یک کلاس به نام Student ایجاد کردیم که ویژگیها و متدها را از کلاس Person به ارث می برد:
class Student(Person): pass
حالا کلاس Student دارای ویژگیها و متدهای کلاس Person است. از کلاس Student برای ایجاد یک شی استفاده کردیم و سپس متد printname را اجرا میکنیم:
class Person: def __init__(self, fname, lname): self.firstname = fname self.lastname = lname def printname(self): print(self.firstname, self.lastname) class Student(Person): pass x = Student("Mike", "Olsen") x.printname()
خروجی را ببینید:
Mike Olsen
مفاهیم شی گرایی از مباحث مهم و کلیدی در یادگیری هر زبان برنامه نویسی شی گرا است. برای آموزش اصول شی گرایی و استفاده از آن در برنامه نویسی پایتون، پیشنهاد می کنیم از آموزش برنامه نویسی شی گرا در پایتون Python فرادرس استفاده کنید.
سخن آخر در مورد کلاس پایتون
به پایان این پست از مجموعه آموزشهای پی استور رسیدیم. در مقاله کلاس پایتون سعی کردیم مفاهیم را به صورت ساده همراه با مثال و توضیحات ارائه دهیم. تابع ()__init__ و پارامتر self که از بحثهای مهم در کلاس در پایتون به شمار میرود را با ذکر مثال توضیح دادیم. در نظر داشته باشید، پایتون در زمان کمی به محبوبیت بالایی رسیده و در زمان کم، کاربردهای فراوانی که در هوش مصنوعی، علوم داده و توسعه وب و غیره داشته است؛ پس آینده خوبی در انتظار این زبان برنامه نویسی خواهد بود.
در ادامه می توانید از پست فرصت های شغلی برنامه نویسی پایتون نیز دیدن کنید. امیدوارم نحوه کار با کلاس های پایتون را به خوبی یاد گرفته باشید. منتظر نظرات شما در مورد این پست هستیم. موفق و پیروز باشید.