کداکسپلور | CodeExplore
7.92K subscribers
1.93K photos
300 videos
103 files
1.69K links
با کد اکسپلور یاد بگیر، لذت ببر و بروز باش ⚡️😉

سایت کد‌اکسپلور:
CodeExplore.ir
👨🏻‍💻 ارتباط با ما :
@CodeExploreSup
گروه :
@CodeExplore_Gap
تبلیغات در کد اکسپلور :
@CodeExploreAds
Download Telegram
خب ادامه حالت هارو هم بگم تا نصفه ولش نکنیم 😀
خب حالت چهارم یکمی از سادگی خارج میشه و وارد بحث شی گرایی میشه! از الان بگم !

4️⃣ حالت چهارم شما دوتا underscope قبل اسم میزاری (که بهش میگن double underscope یا بین برنامه نویسا جا افتاده dunder) یعنی متغیر name__ رو میخونیم داندر نِیم

حالا جدا از اسمش ، این یکی دقیقا چیکار میکنه برامون؟ اینو کلا باید با مثال برم جلو 🤓

فرض کنید ما دوتا کلاس داریم که یکی از کلاس ها از اون یکی ارث بری میکنه :
class Human():
def __init__(self):
self.sex = 'male'
self.name = 'karim'

class Teacher(Human):
sef __init__(self):
super().__init__()
self.count = 2
self.name = 'math'

اگه به کلاس های بالا نگا کنید توی جفتشون یه فیلد name داریم ، و چون کلاس teacher از human ارث بری میکنه و داخل خودش صداش میزنه دوتا فیلد name باهم قاطی میشن 🥲
اونوقت ما چجوری میتونیم به جفتشون دسترسی داشته باشیم؟

اینجاست که dunder میاد وسط و مثال بالا رو تغییر میدیم:
class Human():
def __init__(self):
self.sex = 'male'
self.__name = 'karim'

class Teacher(Human):
sef __init__(self):
super().__init__()
self.count = 2
self.__name = 'math'

شاید بگید خب الانم که اسماشون باز شبیه همه، ولی داندر داره! اینجاست که پایتون میگه من دخالت میکنم و اسامی که به صورت dunder دار نوشته شدن رو تغییر میدم😎
بیاید یه شی بسازیم و ببنیم توش چیه :
t1 = Teacher()
dir(t1)
# ['_Human__name', '_Teacher__name', 'sex', 'count']

میبیند که با اضافه کردن dunder پایتون کلا اسم پراپرتی رو عوض کرد و اسم کلاس رو اولش چسبوند. اینجوری خیلی راحت از هم تفکیک میشن😁

5️⃣ و آخرین حالتم زمانیه که شما یه dunder اول اسم میزارید و یدونه هم اخر اسم
که میشه مثل ‌_‌_init_‌_ که بهش میگن magic method و خود مفسر پایتون کاری به این نوع اسم گذاریتون نداره و فقط برای خوانایی کده! یعنی خودتون تصمیم میگیرد فلان تابع رو اینجوری تعریف کنید برای فلان کار (یعنی برای یه کار خاص رزروش کنید و بدونید خارج از اونجا هم کاری باهاش ندارید و فقط برای یه کاره)

مثلا همین _‌_init_‌_ رو وقتی داخل یه کلاس صدا میزنید یعنی تابع سازنده رو صدا زدید و میدونید که این تابع هم خارج از خود کلاس به کار نمیاد و فقط رزرو شده برای سازنده بودن!


در اخرم باید بگم برای سنیور شدن حتما این چیزا رو رعایت کنید. هم برای درک خودتون خوبه هم برای بقیه برنامه نویسایی که کدتونو نگا میکنن

دیگه کوتاه تر از این نمیتونستم بکنم.
روز خوبی داشته باشید💓

#پست_پیشنهادی
#part2
#python #underscope #oop
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
13❤‍🔥9🔥6
⌨️ مفهوم underscore در پایتون

😎 در دنیای برنامه‌نویسی پایتون، مفاهیم و تکنیک‌های متنوعی وجود دارد که می‌تواند درک و استفاده از آن‌ها به بهینه‌سازی کد و افزایش کارایی کمک کند. یکی از این مفاهیم، "underscore" یا آندرلاین است که ممکن است برای برخی تازه‌کاران کمی مبهم به نظر برسد. در این مقاله، قصد داریم به بررسی جوانب مختلف underscore در پایتون بپردازیم و کاربردهای مختلف آن را توضیح دهیم.

🌐 برای مشاهده کامل مقاله کلیک کنید

#python #underscope #learnpython #python_tricks #python_tips
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤‍🔥128