برنامه نویسی پایتون
726 subscribers
112 photos
28 videos
12 files
85 links
لینک گروه 👇👇👇
https://t.me/pygroupp
Download Telegram
🐍 امروز قصد دارم کمی در مورد مبحث شی گرایی در پایتون صحبت کنیم:

در واقع زمانی که افراد با مفاهیم شی گرایی آشنا میشن خیلی وقتها دچار سردرگمی میشن یا فکر میکنن شی گرایی را یادگرفتن اما وقتی در عمل میخوان با این مفاهیم کار کنن به این رو میارن که این کارو انجام ندن. و همینطور خیلی ها از خودشون سوال میپرسن اصن شی گرایی چی هست؟ اصن به چه دردی میخوره؟
در واقع به جود اومدن این سوال ها امری طبیعی هستش و همینطور این موضوع عادی هستش که در برخورد اولتون یا برخورد های بعدی این مفهوم رو نتونید درک کنید.

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

اما این تفکر چگونه به دست میاد؟
راه های مختلفی برای دستیابی به این امر وجود داره و انتخاب این روش ها نسبت به هر فرد متفاوته یکی از عام ترین روش ها تمرین و در معرض قرار دادن ذهن خودتون در مقابل این مفهومه و میتونید با تجربه بر این موضوع مسلط بشید دومین روش میتونه افزایش دانشتون نسبت به این زمینه باشه نه تنها فقط از دید یک زبان برنامه نویسی خاص بلکه به طور کلی که این امر با مطالعه مقاله ها و کتاب ها و اموزش های متفاوت قابل دستیابی هستش.

در پست بعدی سعی میکنم با مثال های عملی و مفهومی در پایتون بتونم اهمیت این مفهوم رو بهتون معرفی کنم.
#VEX
👨‍💻👩‍💻| @langpython ⁠⁠⁠⁠⁠
برنامه نویسی پایتون
🐍 امروز قصد دارم کمی در مورد مبحث شی گرایی در پایتون صحبت کنیم: در واقع زمانی که افراد با مفاهیم شی گرایی آشنا میشن خیلی وقتها دچار سردرگمی میشن یا فکر میکنن شی گرایی را یادگرفتن اما وقتی در عمل میخوان با این مفاهیم کار کنن به این رو میارن که این کارو انجام…
🐍💡تفاوت "is" و "==" در پایتون:

به احتمال زیاد خیلی هاتون در مورد این دو binary operator شنیدید (در اینجا binary به معنای این هستش که هر دو کدوم از operator ها نیاز به دو مقدار دارن تا بتونن کارکنن)
اما هر کدوم از این ها چه معنی میدن و درواقع چه فرقی باهم دارن؟

🔸بهتره که با یک مثال شروع کنیم:
یک list رو در نظر بگیرید که حاوی اعداد 1،2،3 هستش:

>>> a = [1, 2, 3]

لیست b رو اینگونه تعریف میکنیم:

>>> b = [1, 2, 3]

حالا اگر بنویسیم:

>>> a == b

خروجی قابل انتظار خواهد بود:

>>> True

اما اگر بنویسیم:

>>> a is b

خروجی اون چیزی نیست که انتظار داریم :

>>> False

اما چرا؟ به چه دلیلی نباید True باشه؟ بزارید ایندفعه b رو جور دیگه ایی تعریف کنیم:

>>> b = a

حالا اگه بنویسیم:

>>> a is b
>>> True


🔹دلیل این اتفاق بخاطر این هستش که در مثال اول ما دو شی (Object) متفاوت از نوع list با مقدار های مشابه داشتیم یعنی با اینکه هردوشون حاوی سه عدد یکسان بودن اما بازم باهم فرق داشتن چون دو فضای متفاوت در memory رو اشغال کرده بودن اما مقدار های هردوشون یکی بود، اما تو مثال دوم ما لیست b رو با برابر با لیست a قرار دادیم یعنی هر دو متغیر a و b به یک شی لیست در memory اشاره دارن.
در واقع کار "==" این هستش که دو مقدار رو باهم مقایسه کنه اما کار "is" این هستش که دو شی رو با هم مقایسه کنه.
پس نتیجه میگیریم برابر بودن مقدار دو شی حتما به معنای برابر بودن اون دو شی نیست.


#VEX
👨‍💻👩‍💻| @langpython ⁠⁠⁠⁠⁠