برنامه نویسی

بصری ترین وبلاگ در OOP

یک مقدمه عمیق

به ساده ترین و شهودی ترین وبلاگ برنامه نویسی شی گرا (OOP) که تا به حال در dev.to پیدا کرده اید خوش آمدید. این مجموعه وبلاگ، قسمت شماره 1، با هدف ارائه درک روشنی از موضوع است.

شروع کنیم

ما با یک بلوک کد در پایتون شروع می کنیم:

l = [1, 2, 3, 4, 5]
print(l.upper())
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

به نظر شما خروجی چه خواهد بود؟ با کمال تعجب، این منجر به یک خطا می شود:

'list' object has no attribute 'upper'

حال، بیایید در اینجا بر دو اصطلاح مهم تمرکز کنیم: «شیء» و «ویژگی».

ممکن است تعجب کنید که چرا خطا به آن اشاره دارد list: l به عنوان یک “شی” زمانی که یاد گرفته اید که یک لیست یک نوع داده است. علاوه بر این، «صفت» به چه معناست؟ بیایید با یک بلوک کد دیگر بیشتر کاوش کنیم:

l = [1, 2, 3, "oops"]
print(type(l))
# Output: <class 'list'>
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جالبه، درسته؟ وقتی سعی می کنیم نوع لیست را بدست آوریم، می گوید:l متعلق به کلاس “لیست” است.” اما “کلاس” دقیقاً چیست؟

لحظاتی پیش دیدیم که خطایی به این موضوع اشاره کرد که “لیست” یک شی است. بیایید این سردرگمی را روشن کنیم.

کلاس، شیء و ویژگی ها

لحظه حقیقت اینجاست: هر نوع داده ای که در پایتون با آن مواجه شده اید، در واقع یک کلاس است.

کلاس چیست؟

شما می توانید یک کلاس را به عنوان یک طرح اولیه در نظر بگیرید، اما دقیقاً منظور من از یک طرح اولیه چیست؟ به زودی متوجه خواهیم شد.

بنابراین، هر نوع داده یک کلاس است و هرگاه متغیری از یک کلاس (داده نوع) ایجاد کنیم، به آن یک کلاس گفته می شود. object.

به هر حال، اکنون که می دانیم انواع داده ها کلاس هستند و از آنجایی که قبلاً وجود داشتند، انواع داده ها به عنوان کلاس های داخلی شناخته می شوند. از طرف دیگر، ما کلاس های تعریف شده توسط کاربر داریم که در وبلاگ دیگری بررسی خواهیم کرد.

بنابراین، اگر سعی کنید چاپ کنید type(12)، خروجی خواهد بود class <int>. و اگر یک شی از class/datatype int ایجاد کنید:

n = 1234  # n is an object of datatype int
print(n.append(1))
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد بالا منجر به خطا می شود:

AttributeError: 'int' object has no attribute 'append'

این خطا به ما اطلاع می دهد که شی ساخته شده است n به عنوان یک شیء از int کلاس/نوع داده

به عبارت ساده تر، یک شی نمونه ای از یک کلاس است.

ما می دانیم که نمی توانیم به int اضافه کنیم، اما چرا؟

زیرا هر که کلاس را ایجاد کرد int یا نوع داده int قابلیتی برای این کار اضافه نکرد. عملکرد یک شی یا توابعی که می توانیم روی یک شی از یک کلاس خاص انجام دهیم، an نامیده می شود attribute.

در خروجی کد بالا، ممکن است پیام خطا را مشاهده کنید:
AttributeError: 'int' object has no attribute 'append'

این نشان می دهد که شی int n اینجا، از کلاس int، هیچ عملکردی برای اضافه کردن ندارد.

فعلا همین! ما به زودی موضوعات بیشتری را پوشش خواهیم داد، پس با ما همراه باشید، رفیق!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا