انجمن علمی ریکا
1.96K subscribers
1.62K photos
101 videos
139 files
698 links
انجمن علمی ریاضی و علوم کامپیوتر دانشگاه اصفهان

جادویی که دنبالشی درون کاریه که از اون اجتناب می‌کنی...

انتقادات و پیشنهادات👇🏻
📎 https://app.epoll.pro/31821200
اطلاعات بیشتر👇🏻
📎 https://ZiL.ink/AMCSUI
ارتـبــاط بـا مـا👇🏻
📎 @AMCSSup
Download Telegram
🐍 #پایتون #کتابخونه

🥦 نجات‌دهنده تسک‌های سنگین در بک‌گراند، Celery

تصور کن لازم داری یه کاری رو انجام بدی، اما نمی‌خوای اپلیکیشن اصلیت معطل بشه.
شاید اولین چیزی که به ذهنت برسه async/await یا multithreading توی پایتون باشه.
درسته، اینا کمک می‌کنن، ولی هنوز داری تسک‌ها رو داخل اپ خودت اجرا می‌کنی.

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

💥 اینجاست که کتابخونه Celery وارد بازی می‌شه. (آره، کرفس! شاید چون تسک‌ها رو شاخه‌ شاخه مدیریت می‌کنه👀؟!)
حالا Celery با کمک broker‍هایی مثل RabbitMQ یا Redis، کارهای زمان‌بر رو می‌فرسته توی بک‌گراند.

📌 در نتیجه:
-تسک‌ها به‌صورت asynchronously اجرا می‌شن.
-اپلیکیشن اصلیت دیگه درگیر نمی‌شه.
-و منابع سیستمت آزاد می‌مونه.

💡 برای جزئیات بیشتر می‌تونی این لینک رو مطالعه کنی.

🖇  انجمن علمی ریکا | زی‌لینک | ویکی | ارتباط با ما
❤‍🔥91👌1
📚 #کتابخونه

🎯 کتابخونه‌ای همه‌فن‌حریف برای بینایی کامپیوتر!

👀 گوگل یه کتابخونه داره به اسم MediaPipe که حسابی کار رو راحت کرده!
از تشخیص چهره و ردگیری دست‌ها گرفته تا کلی الگوریتم بینایی کامپیوتر دیگه، همه‌چی رو به‌صورت real-time برات فراهم می‌کنه.

📌 نکته جذابش اینه که کراس‌پلتفرمه؛ یعنی می‌تونی به‌راحتی توی اپ‌های موبایل، دسکتاپ یا حتی وب استفاده‌ش کنی، اونم بدون نیاز به GPU یا سیستم قوی.

🖇  انجمن علمی ریکا | زی‌لینک | ویکی | ارتباط با ما
6👍2💯1
🐍 #پایتون

🔮 جادوی پنهان پایتون در ارسال آرگومان‌ها

وقتی بحث ارسال آرگومان به توابع می‌شه، معمولاً این دو اصطلاح رو می‌شنویم:

Pass by Value (ارسال کپی)
Pass by Reference (ارسال خود متغیر)

اما پایتون روش خودش رو داره!
مدلی به نام Pass by Object Reference یا همون Pass by Assignment.

📌 یعنی چی؟
تصور کن یه صندوق داری (مثل یه list) و آدرسش رو روی یه کاغذ نوشتی.
وقتی تابعی اجرا می‌شه، پایتون یه کاغذ جدید درمیاره، همون آدرس رو روش می‌نویسه و به تابع می‌ده.

-اگه تابع چیزی از صندوق برداره یا تغییر بده، تو هم می‌بینی.
-اما اگه صندوق جدید بسازه، فقط خودش اون رو داره.

🔑 اینجا پای یه تفاوت مهم وسط میاد:
Mutable object (مثل list):
تابع می‌تونه محتوای اصلی رو تغییر بده.
Immutable object (مثل int):
تابع نمی‌تونه مقدار اصلی رو تغییر بده و باید یه نسخه جدید بسازه.

👨‍💻 نمونه کد:

def demonstrate_passing_behavior(my_list, my_int):
my_list.append(4) # تغییر مستقیم در لیست اصلی
my_list = list(my_list) # ساخت کپی جدید
my_int = my_int + 10 # ساخت int جدید، بدون تغییر عدد اصلی

original_list = [1, 2, 3]
original_int = 5
demonstrate_passing_behavior(original_list, original_int)

print(original_list) # [1, 2, 3, 4]
print(original_int) # 5

📍 خروجی:

original_list تغییر کرده
(چون mutable بوده)
original_int بدون تغییر مونده
(چون immutable بوده)

💡 پس درنهایت فهمیدیم که در پایتون خبری از Pass by Value یا Pass by Reference نیست!
به‌جای اون Pass by Object Reference داریم. یعنی reference به object ارسال می‌شه، ولی خود reference به صورت value پاس می‌شه.

🖇  انجمن علمی ریکا | زی‌لینک | ویکی | ارتباط با ما
9👍2🤩1👌1