سلام. تاحالا شنیدین که میگن کد پایتون طرف پایتونیک یا Pythonic نیست؟ اصلا کد پایتونیک یعنی چی و چرا باید یه کد پایتون، پایتونیک باشه؟
در این پست، اول، با یک مثال سعی میکنم که تفاوت یک کد پایتونیک با یک کد غیر پایتونیک رو بهتون نشون بدم، بعدش در مورد اهمیت پایتونیک بودن در نوشتن کد پایتون صحبت میکنم و در آخر هم کتابی رو به شما معرفی میکنم که با مطالعش میتونید به برنامهنویس پایتون بهتر و حرفهای تری تبدیل بشید.
فرض کنید که با استفاده از زبان برنامهنویسی پایتون قصد داریم تا لیستی از اعداد ۰ تا ۹ را تولید و چاپ کنیم. برای انجام این کار، حداقل ۲ راه داریم:
راه اول (غیر پایتونیک):
my_list = [] for i in range(10): my_list.append(i) print(my_list)
راه دوم (پایتونیک):
my_list = [i for i in range(10)] print(my_list)
در صورتی که هر ۲ تکه کد بالا را اجرا کنیم، مشاهده خواهیم کرد که خروجی یکسانی را تولید میکنند. ولی با استفاده از راه دوم تعداد خطهای نوشته شده کمتر و خوانایی کد از نظر خوانایی، بهتر خواهد بود. در واقع یکی از ویژگیهای زبان برنامهنویسی پایتون هم همین موضوع هست که برنامهها و یا کدها، در مقایسه با سایر زبانهای برنامهنویسی، میتوانند به صورت سادهتر و سرراستتری نوشته شوند و هر چه این سادهتر بودن در کد نوشته شده بیشتر باشد، کد خواناتر و با کیفیتتری را خواهیم داشت. همچنین اگر کمی کدهای پایتون نوشته شده توسط برنامهنویسهای حرفهای را بررسی کنیم میبینیم که همهجا از این سادهنویسیها استفاده کردهاند.
پس تا اینجا یادگرفتیم که استفاده از تکنیکها و یا ترفندهای سادهنویسی زبان برنامه نویسی پایتون، برای ما ۳ امتیاز را به همراه خواهند داشت:
- کد سادهتر
- کد خواناتر
- حرفهایتر به نظر آمدن برنامهنویس/توسعهدهنده
در این پست من فقط یک نمونه از این تکنیکها و یا ترفندها را استفاده کردم ولی تعداد آنها قطعا بیشتر از یک نمونه است. اما چطور میشه که همه این تکنیکها را پیدا کرد و یادشون گرفت؟
- با کسب تجربه و مطالعه سندهای منتشر شده در وب سایت پایتون
- راههای دیگهای مثل دیدن نمونهکدهای دیگران، دیدن کلیپهای آموزشی، مطالعه دیگر کتابها و غیره.
- مطالعه کتاب Python Tricks که در همین پست معرفیش میکنم.
این کتاب نوشته آقای Dan Bader هست و خودش هم اون رو منتشر میکنه. Dan Bader مؤسس سایت Real Python هم هست و من خودم پیش از مطالعه این کتاب زیاد از این سایت مطلب یاد گرفتم و به احتمال زیاد شما هم وقتی چیزی راجع به پایتون جستوجو کردید بهش برخورد کردید. همچنین این کتاب توسط محمد بابازاده و معین باباپور به زبان فارسی ترجمه شده و انتشارات پژوهندگان راه دانش هم منتشرش کرده.
همونطور که میدونید یا نمیدونید، زبان برنامهنویسی پایتون تا این لحظه چیزی به نام switch-case نداره و در نگاه اول، شما ناچار به استفاده از تعداد زیادی if خواهید بود. اما یکی از جالبترین موضوعاتی که داخل کتاب بهش پرداخته شده، نحوه پیادهسازی مکانیزم switch-case هست بطوری که دیگه لازم نیست شما از تعداد زیادی if استفاده کنید و به نظر من این قسمت جذابترین قسمت کتاب هست و پیشنهاد میکنم که شما هم حتما راجع بهش بخونید.
شاد و سلامت باشید.
پینوشتها:
- به خودم تبریک میگم که بعد از این همه وقت تونستم یه مطلب اینجا بنویسم و باشد که ادامهدار باشد.
- این کتاب توسط دوست خوبم و همکار سابقم حمزه زارع نصیری بهم معرفی شده بود که همینجا ازش تشکر میکنم.
- مدتی هست که سعی کردم تکنولوژی جدیدی یاد نگیرم و بجاش چند قدم برگردم به عقب و اول یه سری موضوعاتی که توشون ضعف داشتم رو برطرف کنم و بعدش دوباره یاد گرفتن چیزای جدید رو شروع کنم.