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

سایت کد‌اکسپلور:
CodeExplore.ir
👨🏻‍💻 ارتباط با ما :
@CodeExploreSup
گروه :
@CodeExplore_Gap
تبلیغات در کد اکسپلور :
@CodeExploreAds
Download Telegram
سلام به همه دوستان کد اکسپلوری ✌️
قراره امروز در رابطه با underscore در پایتون صحبت کنیم.(که واقعا احتمال میدم طولانی بشه )
شاید underscore برای تازه کارا یکم جدید باشه ولی زیاد به اسمش کار نداشته باشید چون همون آندرلاین خودمونه (_)

بخوام خیلی جامع توضیح بدم کلا ۵ حالت داریم که از underscore توی پایتون استفاده میکنیم.

1️⃣ اولین حالت بصورت استفاده خالی ازشه ، بزارید یه مثال ریز بزنم :
_ = 'hello'
# Or
for _ in range(1, 10):
print(_)

اگه جایی همچین چیزی دیدید ، اولین موردی که باید بدونید ، اینه که خود پایتون همیشه اخرین مقداری که به مفسر میدید رو داخل _ میریزه (به عنوان last variable) و دومین چیزی که باید بدونید اینه که برنامه نویسی که از underscore خالی استفاده میکنه، دنبال یه متغیر موقت میگرده و جای دیگه ایی ازش استفاده نمیکنه (مثلا داخل حلقه خیلی استفادش منطقیه 🙄)

کلا زمانی از underscore خالی استفاده میکنیم که واقعا نیازی به متغیر در جاهای دیگه نداریم و کلا فقط همونجا بکارمون میاد‌ 🫠

حالت دوم تا پنجم استفاده از underscore در واقع میشه گفت به جایگشته !
یعنی یا قبل از اسم میاد یا بعدش یا از هر دو طرفش یا یدونه میاد یا دوتا
احتمالا گیج شدید ☹️

ولی الان مثال میزنم که درک کنیم.

2️⃣حالت دوم زمانیه که شما از یدونه underscore قبل از اسم یا متود استفاده میکنید . مثل زیر :
_name = 'xxx'
def _fun():
print(1)

خب حالا اصلا این اسم گذاری چیکار میکنه؟
اگه زبان دیگه ایی مثل جاوا یا php کار کرده باشید میدونید که اعضا داخل کلاس ها Access Modifiers دارن (خیلی ساده بخوام بهش اشاره کنم ، یعنی تعریف میکنه این متغیر از کجا بهش دسترسی داریم و کجا نداریم)
اگرم فقط پایتون کار کردید میدونید که پایتون اکسس مکسس نمیشناسه 🫡
و نمیتونید براش public , private و ... تعریف کنید . حالا اینارو برای چی گفتم؟ که برسم به underscope قبل از اسم؛ دقیقا یدونه اندرلاین قبل از اسم تابع یا متغیر باعث میشه که ما اون متغیر یا تابع رو private ببینیم و بدونیم که خارج از این کلاس استفاده نمیشه (البته توجه کنید که پایتون اصلا پیگیر اینا نیست! یعنی شما _ هم بزارید و import کنید بازم میتونید به اون متغیر دسترسی داشته باشید! این نوع نام گذاری بیشتر برای مشخص کردن برای خودتون و اعضا تیمه وگرنه خود پایتون کلا اهمیتی بهش نمیده! 😕)
البته نه که کلا اهمیت نده! زیر یه مثال میزنم تا اهمیتشو ببنیم :
Class C1:
name = 'amir'
_age = 21

فایل بالا رو ایمپورت میکنیم :
Class C2:
from C1 import name, _age

# کد بالا خیلی راحت بدون ارور اجرا میشه


# # # # #


import C1
C1._age

# بازم کد بالا بدون ارور اجرا میشه


# # # # #


from C1 import *
print(_age)

# ایندفعه به ارور میخوریم! پایتون فقط در زمانی آندراسکوپ رو ایمپورت نمیکنه که شما ستاره بزارید، در غیر اینصورت خیلی معمولی رفتار میکنه!!!!

حالت سومو من خودم خیلی دوست دارم😄

3️⃣ حالت سوم شما underscore رو بعد از اسم قرار میدید (ولی نه هر اسمی!) یعنی میشه گفت یجور تریک حساب میشه. مثلا شما میخواید یه متغیر تعریف کنید به اسم class ولی class خودش یه کلمه کلیدیه (شاید بگید خب اسمشو عوض میکنیم! اما یه وقتایی دقیقا اون متغیر نیاز به همچین اسمی داره ) اینجاست که به عنوان برنامه نویس underscore رو به ته اسم اضافه میکنیم :
class = 'class one'
# error bteaking
class_ = 'class two'
# without error

#پست_پیشنهادی
#part1
#python #underscore #variable #oop
☕️ @CodeExplore
12🔥10❤‍🔥4