شی گرایی در پایتون (قسمت اول)
پایتون همواره از ابتدای پیدایش، یکی از زبان های شئ گرا بوده است. به همین دلیل ساخت و استفاده از کلاس ها و اشیاء در آن آسان است. در این مقاله کمک میکنیم که در برنامه نویسی شئ گرا با پایتون به مهارت بالایی برسید. با zerotohero همراه شوید تا قهرمان برنامه نویسی شئ گرا با پایتون شوید!
اگر با برنامه نویسی شئ گرا آشنایی ندارید، در ابتدا مروری کلی بر مفاهیم شئ گرایی خواهیم داشت. سپس به بحث شئ گرایی در پایتون خواهیم پرداخت.
مروری بر شئ گرایی :
کلاس : نمونه اولیه ای است که توسط برنامه نویس نوشته میشود و شامل صفت ها، متدهایی است که هرکدام کار خاصی را انجام میدهد.
متغیر کلاس : متغیری است که در میان تمام اعضای کلاس مشترک است. متغیر کلاس در داخل کلاس و خارج از متدهای کلاس تعریف میشود.
بارگزاری تابع : اختصاص دادن بیش از یک رفتار به یک تابع را گویند. یعنی از یک تابع چند تعریف موجود است و بر اساس پارامترهایی که برای آن ارسال میشود یکی از رفتارها انتخاب میشود.
وراثت: انتقال خصوصیات یک کلاس به کلاس های دیگر گویند.
نمونه : شئ مخصوص هر کلاس را گویند. برای مثال، یک شی به نام obj که به کلاس circle تعلق دارد نمونه ای از کلاس circle است.
نمونه سازی (instantiation) : ساخت شئ از یک کلاس را گویند.
متد: نوع خاصی از توابع هستند که در کلاس تعریف میشوند.
شئ: نمونه ای یکتا از یک ساختار داده ای که توسط کلاس آن تعریف شده است.
بارگزاری عملگرها : اختصاص بیش از یک رفتار به یک عملگر خاص است.
ایجاد کلاس
با کلمه class یک کلاس جدید تعریف میکنیم. پس از کلمه class نام کلاس را به همراه دو نقطه می آوریم. همانند نمونه زیر:
class ClassName: 'Optional class docum entation string' class_suite
- در خط دوم مستندات کلاس را مشاهده میکنید که توسط متد __doc__ قابل دسترسی است.
- خط سوم به بعد میتواند شامل تمامی متغیر ها و تعریف متدهای یک کلاس باشد.
نمونه کاملی از یک کلاس به زبان پایتون نوشته شده را میبینید:
class Em ployee: 'Com m on base class for all em ployees' em pCount = 0 def __init__(self, nam e, salary): self.nam e = nam e self.salary = salary Em ployee.em pCount += 1 def displayCount(self): print "Total Em ployee %d" % Em ployee.em pCount def displayEm ployee(self): print "Nam e : ", self.nam e, ", Salary: ", self.salary
- متغیر empcount یک متغیر کلاسی است که در بین تمام نمونه های این کلاس مشترک است. از طریق empCount میتوان از داخل و بیرون از کلاس به آن دسترسی داشت.
- متد اول __init__ متد خاصی است که سازنده کلاس (class constructure) یا مقدار اولیه دهنده کلاس نامیده میشود. هر زمان که شی جدیدی از یک کلاس ساخته میشود پایتون این متدها را فراخوانی میکند.
- بقیه متدها را میتوانید همانند توابع تعریف کنید با این تفاوت که پارامتر اول را حتما باید self قرار دهید. اما در زمان فراخوانی متدها، پایتون خود پارامتر self را اضافه میکند و نیازی به مقدار دهی آن توسط شما نیست.
ساخت شی از کلاس
برای ساخت شئ از کلاس، با استفاده از نام کلاس آن را فراخوانی کرده و آرگومان های آن را با مقادیری که مطابق با متد __init__ قابل قبول است مقدار دهی میکنید.
"This would create first object of Em ployee class" em p1 = Em ployee("Zara", 2000) "This would create second object of Em ployee class" em p2 = Em ployee("Manni", 5000)
در ادامه مفاهیم مختلف مربوط به بحث شی گرایی در پایتون را توضیح خواهم داد. با zerot to hero همراه باشید.
مطالب زیر را حتما مطالعه کنید
آشنایی با توابع در پایتون
راه اندازی Django به همراه Postgresql، Nginx و Gunicorn
آشنایی با حلقه ها در پایتون
آشنایی با رشته در پایتون
برنامه نویسی چند نخی در پایتون
تولید اعداد Random با Python
6 Comments
Join the discussion and tell us your opinion.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
با سلام ، لطفا بفرمایید که زبان پایتون بغیر از مباحث امنیت در چه زمینه هایی کاربرد دارد ؟ ممنون
سلام؛
ممنون از وقتی که می ذارید.
فقط اگر کلمات انگلیسی رو هم کنار معادل فارسی ها قرار می دادید خیلی عالی می شد.
سپاس
سلام و خسته نباشید
من میخوام پایتون رو حرفه ای و ب سمت تست نفوذ و امنیت یاد بگیرم ممنون میشم منبع و راهنمایی کنید من رو
سلام و درود
دوره تست نفوذ و امنیت با زبان پایتون در آینده از طریق مجموعه صفرتاقهرمان منتشر خواهد شد.
موفق باشید
سلام وقت بخیر میخواهم لینوکس و پایتون رو حرفه ای دنبال کنم
لطفا منابع ارزشمند رو که خودتون خوندین معرفی کنین و ایمیل بزنین
ممنون
m.hashemi1369@ut.ac.ir
سلام دوست عزیز.
منابع زیادی برای یادگیری وجود داره! برای پایتون بهترین منبعی که میشناسم اینه که شما رو تا حدودی با بحث امنیت
هم آشنا میکنه:
http://www.naghoospress.ir/bookview.aspx?bookid=1486804
همچنین یه سری از منابع دیگه رو برای شما سر فرصت ایمیل میکنم