واژهنامه
هر واژه یک بار و دقیق تعریف شده است. این فهرست برای مرور سریع هنگام حل مسئله ساخته شده — نه برای خواندن از ابتدا تا انتها.
ا
- استثنا
-
خطای نحوی قبل از اجراست؛ استثنا در زمان اجراست و قابل مدیریت. الگوها در استثناها و جریان انتشار.
ب
- بستار
-
جایگزینِ پایتونیکِ کلاسهای تکمتدهٔ جاوایی. نوشتنِ متغیرِ بیرونی از داخل نیازمند
nonlocalاست.
پ
- پروتکل
-
نزدیکترین چیز به اینترفیسِ جاوا ولی انعطافپذیرتر: بهجای سلسلهمراتب، «شکل» را چک میکند. ببین کلاس انتزاعی و پروتکل.
- پکیج
-
__init__.pyمرز و رابطِ عمومیِ پکیج است: همان چیزهایی که کاربر باید ببیند. ببین واردات و فضاهای نام.
ت
- ترتیب حل متد
-
با
ClassName.__mro__دیده میشود. هر کلاس یکبار در زنجیره است وsuper()در همین ترتیب قدم میزند. ببین وراثت چندگانه و MRO. - تزئینکننده
-
برای رفتارهای عرضی (لاگ، تلاش مجدد، کش) به کار میرود. همیشه با
functools.wrapsبنویس. ببین تزئینکنندهها و بستارها. - تکرارگر
-
تکرارپذیر (مثل list) را میشود چند بار پیمود؛ تکرارگر را فقط یکبار. تکرارگرِ مصرفشده ساکت خالی برمیگرداند.
چ
- چندریختی
-
کدی که با والد (یا پروتکل) حرف میزند، روی هر نوعِ تازه بدون تغییر کار میکند. جزئیات در چندریختی و ارسال پویا.
د
- دیتاکلاس
-
وقتی کلاس بیشتر «داده» است تا «رفتار»، انتخابِ اول. از ماژول
dataclassesمیآید.
ر
- راهبرد
-
وقتی راهبردها حالت ندارند، تابع کافی است و سلسلهمراتب کلاس لازم نیست. مثال در تخفیف راهبردی.
- ریسه
-
بهخاطر GIL، ریسههای CPU-bound موازیِ واقعی نمیشوند. ببین ریسهها و قفلها.
ز
- زمینهبان
-
فایل، قفل، اتصال و تراکنش همه زمینهباناند. ببین زمینهبانها.
س
- سوکت
-
سوکت رشته نمیفهمد؛ encode/decode و مرزِ پیام (طولاول یا جداکننده) قراردادِ توست. ببین سوکت و TCP.
ش
- شیء
-
هر شیء دو چیز دارد: حالت (مقادیر ویژگیهایش) و رفتار (متدهایی که میفهمد). دو شیء از یک کلاس رفتار مشترک ولی حالت مستقل دارند.
ق
- قفل
-
همیشه با
withگرفته شود و تا حد ممکن کوچک باشد. راهحلِ ریشهایتر معمولاً حذفِ حالتِ مشترک (صف و پیام) است.
ک
- کلاس
-
کلاس خودش کاری انجام نمیدهد؛ شیءها انجام میدهند. کلاس را یکبار مینویسی و هر چند شیءِ مستقل که بخواهی از آن میسازی. برای شروع به کلاس در برابر شیء برگرد.
- کلاس پایهٔ انتزاعی
-
با
abc.ABCو@abstractmethodساخته میشود. برای قراردادِ بدونِ وراثتِ اجباری، پروتکل را ببین.
م
- موک
-
فقط برای مرز (شبکه، ساعت، درگاه)؛ موکِ بیشازحد تست را آینهٔ پیادهسازی میکند. ببین موک و دابلها.
- مولد
-
برای دنبالههای بزرگ یا بینهایت تنها راهِ عملی است. در برابر لیست (یکجا) و تکرارگر (یکبارمصرف) ببین تکرارگرها و مولدها.
ن
- ناظر
-
در پایتون با لیستِ callback و متد subscribe پیاده میشود؛ همان ایدهٔ پشتِ سیستمهای رویداد و GUI.
و
- وراثت
-
وراثت استفادهٔ دوباره میدهد ولی سلسلهمراتبِ عمیق شکننده است. اگر رابطه «دارد» است، ترکیب را ببین.
- ویژگی محاسباتی
-
باید ارزان و بدون غافلگیری باشد؛ هزینهٔ سنگین یعنی متدِ نامدار. ببین ویژگیها.
O
- O بزرگ
-
«O(n) است» یعنی رشدش حداکثر خطی است، نه اینکه دقیقاً n قدم است. تعریف دقیق در تعریف O بزرگ.
p
- pickle
-
فقط برای دادهای که خودت نوشتهای؛ برای بقیهٔ دنیا JSON یا CSV با اعتبارسنجی. ببین JSON و CSV و بار امن.
s
- self
-
پایتون
selfرا خودکار پاس میدهد:acc.deposit(50)یعنیdeposit(acc, 50). اسمش قرارداد است نه کلمهٔ کلیدی، ولی هیچکس عوضش نمیکند. جزئیات در self و سازنده.