۱ علی نعیمی
__name__ و استفاده از __ __
جامعه پایتون (وب) ایجاد شده در ۳۱ تیر ۱۴۰۲

معنی __ __ چیه و چه زمانی استفاده میشه؟

سلام علی جان

 بهت اکیدا پیشنهاد میکنم برای بهتر شدن توانایی یادگیری و سرچ کردنت یکسری سوالات ساده رو واقعا به انگلیسی سرچ کن.

در پایتون، دو زیرخط (_) به عنوان نام یا ویژگی خاصی استفاده می‌شود و به عنوان دو نقطه پشت سر هم قرار می‌گیرند. این دو نقطه پشت سر هم به عنوان پیشوند و پسوند برای نام‌ها مورد استفاده قرار می‌گیرند و به آن‌ها نام "داندراسکور" (Double Underscore) هم می‌دهند. از این نمادها در پایتون به عنوان قراردادهای خاص استفاده می‌شود.


معمولاً استفاده از دو نقطه پشت سر هم در پایتون به دلایل زیر است:


1. نشان دهنده ویژگی‌های خاص:

در برخی از موارد، دو نقطه پشت سر هم به عنوان نشانه‌ای برای ویژگی‌ها و انواع خاصی از نام‌ها استفاده می‌شود. برای مثال، معمولاً در کلاس‌ها از نام‌هایی که با دو نقطه پشت سر هم شروع می‌شوند، به عنوان ویژگی‌های خاص کلاس استفاده می‌شود.


2. تعاریف خاص در کلاس‌ها:

در کلاس‌ها، دو نقطه پشت سر هم به عنوان نشانه‌ای برای تعاریف خاص مانند کانستانت‌ها، پروپرتی‌ها، و متدهای خاص استفاده می‌شود. برای مثال، معمولاً متد `__init__` به عنوان سازنده کلاس استفاده می‌شود و متد‌هایی با نام‌هایی مانند `__str__` و `__repr__` برای نمایش متنی اشیاء کلاس به کار می‌روند.


3. متغیرهای خاص در ماژول‌ها:

در ماژول‌ها، دو نقطه پشت سر هم به عنوان نشانه‌ای برای متغیرهای خاص مانند `__name__` و `__file__` استفاده می‌شود. این متغیرها به اطلاعات خاص مرتبط با ماژول دسترسی می‌دهند.


همچنین، در بعضی موارد، دو نقطه پشت سر هم به عنوان پیشوند و پسوند برای اجتناب از تداخل نام‌ها مورد استفاده قرار می‌گیرد. برای مثال، وقتی یک نام متغیر یا تابع تعریف شده در یک ماژول با نام یک نام داخلی یا یک کتابخانه همخوانی دارد، می‌توان با اضافه کردن دو نقطه پشت سر هم به انتهای نام آن نام را به یک نام منحصر به فرد تبدیل کرد. بطور معمول، این کار با تعریف نام‌ها به صورت `name_` یا `name__` انجام می‌شود.


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


ها جلوگیری کنند و ویژگی‌ها و عملکردهای خاص در کلاس‌ها و ماژول‌ها را مشخص کنند.


موفق باشی ?

بهترین پاسخ
Reza Mobaraki ۳۱ تیر ۱۴۰۲، ۱۲:۱۷