دوندرز چیست؟
اگر شنیده اید که پایتونیستای باتجربه در مورد پایتون صحبت می کنند یا
چند سخنرانی کنفرانس را تماشا کرده اید که ممکن است اصطلاح dunder را شنیده باشید.
اگر میپرسید این چیست، خوب، پاسخ شما در اینجا است:
زیرخط های دوگانه اغلب در پایتون به عنوان “داندر” شناخته می شوند
انجمن. دلیل آن این است که زیرخط های دوتایی اغلب ظاهر می شوند
در کد پایتون، و برای جلوگیری از خستگی عضلات فک خود، Pythonistas
غالباً «زیر خط دوگانه» را به «داندر» کوتاه میکنند.
به عنوان مثال، شما baz را به عنوان “dunder baz” تلفظ می کنید. به همین ترتیب، init به عنوان “dunder init” تلفظ می شود، حتی اگر یک ممکن است فکر کند که باید “dunder init dunder” باشد. اما این فقط یکی دیگر از ابهامات در کنوانسیون نامگذاری است. مانند یک است دست دادن مخفی برای توسعه دهندگان پایتون دو خط پیشرو و انتهایی: “__var“
شاید تعجب آور باشد که اگر نامی شروع شود، مخفی کردن نام اعمال نمی شود
و با زیرخط دوتایی به پایان می رسد. متغیرهایی که توسط یک دوتایی احاطه شده اند
پیشوند و پسوند زیر خط توسط مترجم پایتون آسیبی نبینند
class PrefixPostfixTest:
def init(self):
self.bam = 42
PrefixPostfixTest().bam
42
با این حال، نامهایی که دارای دو امتیاز دوبل پیشرو و انتهایی هستند، برای استفاده ویژه در زبان محفوظ هستند. این قانون پوشش می دهد
چیزهایی مانند init برای سازنده شی، یا call برای فراخوانی اشیاء.
این روشهای دوندر اغلب به عنوان روشهای جادویی شناخته میشوند – اما
بسیاری از افراد در جامعه پایتون، از جمله من، دوست ندارند
آن کلمه به این معنی است که استفاده از روشهای dunder ممنوع است،
که کاملاً اینطور نیست. آنها یک ویژگی اصلی در پایتون هستند و
باید در صورت نیاز استفاده شود. هیچ چیز “جادویی” یا مخفیانه ای در مورد آن وجود ندارد
آنها را
با این حال، تا آنجا که قراردادهای نامگذاری پیش می رود، بهتر است از آن دوری کنید
از نامهایی استفاده کنید که با زیرخطهای دوتایی شروع و پایان مییابند
برنامه هایی برای جلوگیری از برخورد با تغییرات آتی در زبان پایتون.
زیر خط تکی: “” طبق قرارداد، گاهی اوقات از یک خط زیر خط مستقل استفاده می شود نامی برای نشان دادن موقتی یا ناچیز بودن یک متغیر. به عنوان مثال، در حلقه زیر نیازی به دسترسی به اجرا نداریم ایندکس و ما می توانیم از “” برای نشان دادن اینکه فقط یک مقدار موقت است استفاده کنیم:
for _ in range(32):
… print(‘Hello, World.’)
همچنین میتوانید از زیرخطهای منفرد در بازکردن عبارات بهعنوان متغیر «مراقب نباشید» برای نادیده گرفتن مقادیر خاص استفاده کنید. باز هم این معنی
فقط طبق قرارداد است و هیچ رفتار خاصی را در آن ایجاد نمی کند
تجزیه کننده پایتون زیرخط تنها یک متغیر معتبر است
نامی که گاهی برای این منظور استفاده می شود.
قوانین ارسال دیدگاه در سایت