پایتون GIL به زبان ساده

python GIL

همه‌ی ما در مورد GIL و محدودیت‌هایی که برای ما ایجاد می‌کنه چیزهایی شنیدیم و مطالبی خوندیم. اما آیا واقعا می‌دونیم GIL چی هست؟ قبل از اینکه بخوایم در مورد GIL صحبت کنیم، بیایید یه تابع ساده بنویسیم. فرض کنید قطعه کدی به صورت زیر نوشتیم که عددی رو از ورودی دریافت می‌کنه و یکی یکی از اون کم می‌کنه. خب حالا این تابع رو با یه عدد بزرگ فراخونی می‌کنیم تا ببینیم چقدر طول می‌کشه تا اجرا بشه. اجرای

بیشتر بخوانید

پایتون و Functional Programming

functional programming

خیلی وقت‌ها موقع برنامه نویسی با مسائل مختلفی روبرو می‌شیم که راه حل خیلی از اون‌ها تقریبا شبیه به هم هست. در چنین مواقعی طبیعتا بهترین کار نوشتن توابع و فراخونی اون‌ها در بخش‌های مختلف برناممون هست. هر کدوم از این توابع، بدون توجه به سایر بخش‌های برنامه، یک یا چند ورودی دریافت می‌کنن و یک یا چند خروجی رو به ما برمی‌گردونن. در این مطلب با یک سری توابع درونی پایتون آشنا می‌شیم که خیلی از چالش‌های رایج در

بیشتر بخوانید

ترفندهایی برای افزایش سرعت برنامه‌های پایتون

python fast

همیشه برنامه نویس‌های زیادی اطرافمون هستن که در مورد سرعت کم پایتون صحبت می‌کنن. خیلی از این برنامه نویس‌ها تا بحال حتی یک خط کد هم با پایتون ننوشتن! در واقع سرعت اجرای هر برنامه‌ای (فارغ از اینکه با چه زبونی نوشته شده) به مهارت‌های کدنویسی برنامه نویس بستگی داره تا بتونه بهینه سازی برنامه‌ای که می‌نویسه رو به خوبی انجام بده تا سرعت اجرای برنامه افزایش پیدا کنه. پس بیایید در مورد ترفندهایی صحبت کنیم که باعث افزایش سرعت

بیشتر بخوانید

پیاده سازی عبارات switch/case به کمک دیکشنری در پایتون

python switch case

همانطور که می‌دانید در پایتون دستورات switch/case وجود ندارد. بنابراین گاهی اوقات ممکن است نیاز باشد تا عبارات طولانی شرطی به صورت if..elif..else نوشته شود. ما در اینجا قصد داریم با روشی آشنا شویم که با استفاده از دیکشنری، عبارات switch/case را شبیه سازی نماییم. فرض کنید که قطعه کدی به صورت زیر در اختیار داریم. مسلما برای بررسی ۳ حالت مختلف، این عبارت به اندازه کافی مناسب است. اما اگر تعداد حالات مورد نیاز برای بررسی بیشتر باشد باید

بیشتر بخوانید

آشنایی با انواع آرایه‌ها در پایتون

python arrays

آرایه‌ها در پایتون یکی از پایه‌ای ترین نوع داده در این زبان‌ برنامه نویسی است و از آن‌ها به صورت گسترده در بسیاری از برنامه‌ها و الگوریتم‌ها استفاده می‌شود. در این مقاله نگاهی به پیاده سازی انواع ساختار داده آرایه‌‌ها در پایتون می‌اندازیم و کتابخانه‌هایی را در زبان پایتون بررسی می‌کنیم که آرایه‌ها را به نحو دیگری در این زبان پیاده سازی نموده‌اند. بنابراین شما با نقاط قوت و ضعف هرکدام از روش‌ها آشنا شده و می‌توانید تصمیم بگیرید که از کدام یک در برنامه‌های خود

بیشتر بخوانید

آشنایی با عبارت with در پایتون

python context manager

عبارت with در پایتون معمولا یک عبارت مرموز درنظر گرفته می‌شود. اما زمانی که به پشت صحنه نگاه می‌کنید، می‌بینید که هیچ جادویی در کار نیست. عبارت with در واقع یک ویژگی جذاب و مفید است که به شما کمک می‌کند تا کد پایتونی تمیزتر و خواناتری داشته باشید. ممکن است سوال کنید عبارت with در پایتون چه زمان هایی استفاده می‌شود؟ عبارت with زمانی استفاده می‌شود که بخواهیم با استفاده از الگوی استانداردی، به مدیریت منابع به صورت بهینه

بیشتر بخوانید

عملگر سوشی در پایتون

python sushi

با استفاده از عملگر سوشی در پایتون می‌توان ترفندهای جالبی برای برش لیست‌های پایتونی انجام داد. اما چگونه؟ در زبان برنامه نویسی پایتون می‌توان یک لیست را تکه تکه نمود. به این عمل در پایتون slicing گفته می‌شود. با استفاده از این روش می‌توان تنها به بخشی از یک لیست دسترسی پیدا کرد. برای مثال می‌توان یک لیست بزرگ را با این روش به چندین لیست کوچکتر تقسیم کرد و هر کدام از آن‌ها را بسته به نیاز مورد استفاده

بیشتر بخوانید

قدرت اعجاب انگیز Decorator پایتون

python decorators

تصور کنید ۳۰ تابع با منطق های پیچیده کسب و کار در برنامه خود نوشته اید. در یک صبح شنبه بارانی، رئیس کنار میز شما می‌آید و می‌گوید: صبح شنبه بخیر! آن گزارشهای TPS را به خاطر داری؟ نیاز دارم تا داده های ورودی و خروجی در هر مرحله تولید گزارش را به صورت کامل ثبت کنید. برای اهداف حسابرسی با شرکت XYZ این اطلاعات باید آماده شوند. به آنها گفتم که می‌توانیم این کار را تا روز دوشنبه ارسال

بیشتر بخوانید

نحوه‌ی ساخت پکیج در پایتون

python packaging

گاهی اوقات ممکن است شما برنامه‌ای با تعداد زیادی ماژول نوشته باشید (ماژول می‌تواند یک فایل ساده شامل تعدادی کلاس باشد) و قصد دارید تمام آن‌ها را به یک بسته‌ی واحد (package) تبدیل کنید. زمانی که تعداد این ماژول‌ها (فایل‌ها) در پروژه‌ای زیاد شود، بهتر است ماژول‌های مشابه را در یک دایرکتوری (directory) قرار داده و مجموع تمام دایرکتوری ها را به یک بسته‌ی واحد تبدیل کنیم. در این مقاله قصد داریم نحوه‌ی ساخت یک بسته‌ی بسیار ساده در پایتون

بیشتر بخوانید