هوش‌مصنوعی🔥برنامه‌نویسی | کدینگ‌یار
2.66K subscribers
20 photos
14 videos
5 files
64 links
Download Telegram
Channel name was changed to «هوش‌مصنوعی🔥برنامه‌نویسی | کدینگ‌یار»
#خبر #هوش_مصنوعی #Kimi

🔥 مدل Kimi K3.1 Pro معرفی شد

شرکت Moonshot AI از Kimi K3.1 Pro رونمایی کرد؛ قوی‌ترین مدل اوپن‌ویت این شرکت با ۲.۸ تریلیون پارامتر (۱۰۴ میلیارد پارامتر فعال، معماری MoE)، کانتکست ۱ میلیون توکنی و پشتیبانی از ورودی تصویری. به گفته‌ی سازنده، این مدل توی بنچمارک‌های کدنویسی و ایجنتی هم‌سطح قوی‌ترین مدل‌های تجاری مثل Opus 5.5 و GPT-6 Astra کار می‌کنه و خیلی ارزون‌تره؛ توی رتبه‌بندی WebDev Arena هم به رتبه‌ی ۸ رسیده.

این مدل همراه نسخه‌ی سریع‌ترش (Highspeed، ۲ تا ۳ برابر سریع‌تر) از همین حالا روی سایت Kimi، ابزار Kimi Code و API در دسترسه و وزن‌هاش تا ۴ نوامبر منتشر می‌شه.

🔗 منبع رسمی: معرفی Kimi K3.1 Pro
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
#خبر #هوش_مصنوعی #Claude

💬 پشتیبانی از Tasks و Elicitations در Claude اضافه شد

شرکت Anthropic پشتیبانی از دو قابلیت جدید MCP رو به Claude اضافه کرد. با Tasks، مدل Claude می‌تونه کارهای طولانی مثل تحقیق عمیق رو به پلاگین‌ها بسپره و وقتی تموم شد نتیجه رو گزارش بده. با Elicitations هم پلاگین‌ها می‌تونن وسط کار از کاربر چیزی بپرسن، مثلاً تأیید یک بازپرداخت یا پر کردن یک اطلاعات جاافتاده.

این دو قابلیت از امروز توی Claude Code CLI فعالن و به‌زودی به بقیه‌ی محصولات Claude هم می‌رسن.

🔗 منبع رسمی: اکانت ClaudeDevs در ایکس
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
❤2
#خبر #امنیت #برنامه_نویسی

🚨 آسیب‌پذیری خطرناک در کتابخونه Brotli؛ Node.js و Bun رو آپدیت کنید

شرکت OpenAI اعلام کرد ایجنت‌های امنیتی‌اش توی کتابخونه فشرده‌سازی Brotli یه آسیب‌پذیری اجرای کد از راه دور (RCE) پیدا کردن که بدون نیاز به ساخت حساب کاربری قابل سوءاستفاده‌ست. این کتابخونه داخل نرم‌افزارهای پرکاربردی مثل Node.js، Bun و Envoy هست.

مهاجم می‌تونه با فرستادن داده فشرده‌شده‌ی مخرب، روی سرور آپدیت‌نشده کد اجرا کنه؛ برعکسش هم ممکنه و کلاینتی که داده فشرده دریافت می‌کنه، با جواب یه سرور مخرب آلوده بشه.

شناسه این باگ CVE-2026-111497 هست و Brotli نسخه‌های اصلاح‌شده 1.2.1، 1.1.1 و 1.0.10 رو منتشر کرده. اگه با Node.js، Bun یا هر نرم‌افزاری که Brotli داخلشه کار می‌کنید، آپدیت امنیتی‌شون رو نصب کنید.

🔗 جزئیات و راه‌های مقابله رو اینجا بخونید
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
❤2
#آموزش #پایتون
‌⚡️ می‌دونستین برای شمردن تکرارها توی پایتون یک ابزار آماده هست؟
‌
اسمش Counter هست و توی ماژول collections خود پایتونه، پس نصب لازم نداره. یک لیست بهش بدین تا تعداد تکرار هر عضو رو بشمره و پرتکرارترین‌ها رو هم بهتون بده:
‌
from collections import Counter

langs = ["python", "go", "python", "rust", "go", "python"]
counts = Counter(langs)
print(counts)
print(counts.most_common(2))

‌
خروجی:
‌
Counter({'python': 3, 'go': 2, 'rust': 1})
[('python', 3), ('go', 2)]

‌
متد most_common(2) دو عضو پرتکرار رو به‌ترتیب، همراه تعدادشون برمی‌گردونه. دیگه لازم نیست خودتون یک دیکشنری بسازید و توی حلقه یکی‌یکی بهش اضافه کنید.
‌
🔸 کلید ناموجود خطا نمی‌ده
توی دیکشنری معمولی، خوندن کلیدی که وجود نداره خطای KeyError می‌ده، ولی Counter برای چیزی که ندیده صفر برمی‌گردونه (ادامهٔ همون کد بالا):
‌
print(counts["java"])

‌
خروجی:
‌
0

‌
🔸 روی رشته هم کار می‌کنه
هر چیزی که بشه روش حلقه زد رو می‌شمره؛ مثلاً حروف یک کلمه:
‌
letters = Counter("banana")
print(letters)

‌
خروجی:
‌
Counter({'a': 3, 'n': 2, 'b': 1})

‌
🔸 پیدا کردن عضوهای تکراری
چون Counter در اصل یک دیکشنریه، متد items و بقیهٔ امکانات دیکشنری رو داره:
‌
dupes = [x for x, n in counts.items() if n > 1]
print(dupes)

‌
خروجی:
‌
['python', 'go']

‌
🔸 اضافه کردن داده‌های جدید
متد update شمارش‌های جدید رو با قبلی‌ها جمع می‌کنه، نه اینکه جاشون بنویسه:
‌
counts.update(["rust", "rust"])
print(counts["rust"])

‌
خروجی:
‌
3

‌
▫️ اگه به most_common عددی ندید، همهٔ عضوها رو از بیشترین به کمترین برمی‌گردونه.
▫️ اگه تعداد تکرار دو عضو برابر باشه، هر کدوم زودتر دیده شده باشه اول میاد.
▫️ چند کاربرد واقعی: شمردن کدهای وضعیت توی فایل لاگ، پیدا کردن پرتکرارترین کلمه‌های یک متن یا شمردن رأی‌های یک نظرسنجی.
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👏1
هوش‌مصنوعی🔥برنامه‌نویسی | کدینگ‌یار
#کوئیز #پایتون ‌ پیش‌نیاز: لیست، ایندکس منفی و list comprehension با شرط if ⏳ پاسخ کوییز ۲۴ ساعت دیگه توی همین کانال میاد. ‌ @codingyar
#پاسخ_کوییز #پایتون
‌
🔔 پاسخ کوییز بالا (همین کوییزی که بهش ریپلای زدم) رو در زیر ببینید ⬇️
‌
✅ جواب درست: «60 3»
‌
توی list comprehension، بخش if مثل یک فیلتره: فقط عددهایی که n % 2 == 0 براشون درسته (یعنی ۲، ۴ و ۶) رد می‌شن و بقیه کلاً کنار گذاشته می‌شن. بعد هر عددی که رد شده، ضرب در ۱۰ می‌شه. پس evens می‌شه [20, 40, 60].
‌
ایندکس ‎-1 همیشه آخرین عضو لیست رو می‌ده، یعنی ۶۰. تابع len هم تعداد عضوها رو می‌شمره که ۳ تاست.
‌
اشتباه رایج: گزینهٔ «6 3» یعنی ضرب در ۱۰ رو فراموش کنیم. گزینهٔ «60 6» یعنی فکر کنیم if فقط روی مقدار اثر داره و طول لیست همون ۶ می‌مونه. گزینهٔ «50 3» هم از اینجا میاد که فکر کنیم عددهای فرد (۱، ۳، ۵) نگه داشته می‌شن.

‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
#آموزش #گیت
‌
⚡️ می‌دونستین کامیتی که با یک ریست اشتباه از تاریخچه پریده، هنوز توی گیت هست و برمی‌گرده؟
‌
گیت هر جابه‌جایی HEAD رو توی یک دفترچهٔ محلی به اسم reflog ثبت می‌کنه. فرض کنید با ریست کردن به یک کامیت عقب‌تر، کامیت «add login page» غیب شده. با این دو دستور پیداش می‌کنیم و برش می‌گردونیم:
‌
git reflog
git reset --hard HEAD@{1}

‌
خروجی:
‌
377ca14 HEAD@{0}: reset: moving to HEAD~1
73550dc HEAD@{1}: commit: add login page
377ca14 HEAD@{2}: commit (initial): initial commit
HEAD is now at 73550dc add login page

‌
عبارت HEAD@{1} یعنی «جایی که HEAD یک قدم قبل بود». همون‌طور که توی خط دوم خروجی می‌بینید، اون موقع روی کامیت گمشده بود؛ پس با ریست به همون نقطه، کامیت دوباره سر جاش برمی‌گرده.
‌

💎
راه امن‌تر: اول یک برنچ نجات بسازید
اگه مطمئن نیستید کدوم خط درسته، به‌جای ریست، اون نقطه رو توی یک برنچ جدا نگه دارید و با خیال راحت بررسیش کنید:
‌
git branch rescue HEAD@{1}
git log --oneline rescue

‌
خروجی:
‌
73550dc add login page
377ca14 initial commit

‌
‌
🔥 برنچی که پاک کردین هم برمی‌گرده
موقع پاک کردن برنچ، گیت هش آخرین کامیتش رو نشون می‌ده:
‌
git branch -D feature

‌
خروجی:
‌
Deleted branch feature (was 94be905).

‌
اگه این پیام رو از دست دادین، هش رو از خروجی reflog پیدا کنید (خط «commit: add feature») و برنچ رو با همون هش دوباره بسازید:
‌
git reflog -3
git branch feature 94be905

‌
خروجی:
‌
73550dc HEAD@{0}: checkout: moving from feature to main
94be905 HEAD@{1}: commit: add feature
73550dc HEAD@{2}: checkout: moving from main to feature

‌
‌
⚠️ ریست با گزینهٔ --hard تغییرات کامیت‌نشده رو پاک می‌کنه و reflog فقط کامیت‌ها رو نگه می‌داره، نه تغییراتی که هیچ‌وقت کامیت نشدن. پس قبلش با این دستور مطمئن بشید چیز کامیت‌نشده‌ای ندارید:
‌
git status

‌
▫️ دفترچهٔ reflog فقط روی سیستم خودتونه و با push جایی نمی‌ره؛ توی یک کلون تازه فقط یک خط «clone» داره.
▫️ ورودی‌ها همیشگی نیستن: با تنظیمات پیش‌فرض، ورودی‌هایی که به کامیت‌های بیرون از تاریخچهٔ برنچ فعلی اشاره دارن (مثل همین کامیت گمشده) بعد از ۳۰ روز و بقیه بعد از ۹۰ روز موقع پاک‌سازی خودکار گیت حذف می‌شن؛ پس نجات رو عقب نندازید.
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
#خبر #هوش_مصنوعی #Canva

🎨 مدل تصویرساز Canva Craft معرفی شد

شرکت Canva اولین مدل تولید تصویر اختصاصی خودش رو با نام Canva Craft منتشر کرد. این مدل قبل از ساختن تصویر، اول چیدمان طرح رو برنامه‌ریزی می‌کنه و برای همین متن‌های داخل تصویر رو دقیق‌تر می‌نویسه و می‌شه بخشی از طرح رو بدون به‌هم‌ریختن بقیه‌اش ویرایش کرد. خروجی‌ها تا وضوح 2K و در بیش از ۳۰ نسبت تصویر ساخته می‌شن و توی رتبه‌بندی DesignArena هم به رتبه‌ی چهارم رسیده.

این مدل از همین حالا برای همه‌ی کاربران Canva از بخش Dream Lab و از طریق API در دسترسه و قراره به‌زودی از طریق MCP به ChatGPT و Gemini هم وصل بشه.

🔗 منبع رسمی: معرفی Canva Craft
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
❤2🔥1
هوش‌مصنوعی🔥برنامه‌نویسی | کدینگ‌یار
#کوئیز #پایتون ‌ پیش‌نیاز: دیکشنری (اضافه کردن و تغییر کلید) و حلقهٔ for روی دیکشنری ⏳ پاسخ کوییز ۲۴ ساعت دیگه توی همین کانال میاد. ‌ @codingyar
#پاسخ_کوییز #پایتون
‌
🔔 پاسخ کوییز بالا (همین کوییزی که بهش ریپلای زدم) رو در زیر ببینید ⬇️
‌
✅ جواب درست: «3 18»
‌
توی دیکشنری هر کلید فقط یک بار وجود داره. وقتی به کلیدی که از قبل هست مقدار می‌دیم، فقط مقدارش عوض می‌شه؛ پس tea از ۵ می‌شه ۶ و تعداد کلیدها همون ۲ می‌مونه. ولی cake کلید جدیده و با مقدار ۴ اضافه می‌شه. حالا دیکشنری ۳ تا کلید داره و len عدد ۳ رو می‌ده.
‌
حلقهٔ for روی دیکشنری، کلیدها رو یکی‌یکی می‌ده و با prices[item] به مقدار هر کدوم می‌رسیم. پس جمع می‌شه ۶ + ۸ + ۴ = ۱۸.
‌
اشتباه رایج: گزینهٔ «3 17» یعنی فکر کنیم مقدار قبلی tea (یعنی ۵) سر جاش می‌مونه. گزینهٔ «4 23» از اینجا میاد که فکر کنیم tea یک کلید تکراری دوم با مقدار ۶ می‌سازه (۵ + ۶ + ۸ + ۴). گزینهٔ «2 14» هم یعنی cake رو فراموش کنیم و فقط ۶ + ۸ رو حساب کنیم.

‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
❤2👏1
#آموزش #گیت
‌
‌⚡️ می‌دونستین اگه پیام آخرین کامیت رو اشتباه تایپ کردین یا یک فایل ازش جا موند، لازم نیست یک کامیت «fix» جدا بسازید؟
‌
گزینهٔ --amend آخرین کامیت رو با یک نسخهٔ درست‌شده جایگزین می‌کنه. فرض کنید کامیت «add login pgae» رو با غلط تایپی ساختین و فایل settings.py هم توش نرفته:
‌
git add settings.py
git commit --amend -m "add login page"
git log --oneline

‌
خروجی:
‌
[main 5600caf] add login page
Date: Mon Oct 26 10:00:00 2026 +0330
2 files changed, 2 insertions(+)
create mode 100644 login.py
create mode 100644 settings.py
5600caf add login page
513b5b1 initial commit

‌
حالا به‌جای دو کامیت، فقط یک کامیت تمیز با پیام درست داریم که هر دو فایل رو داره.
‌✔️ فقط فایل جاافتاده رو اضافه کنید و پیام دست نخوره
اگه پیام درسته و فقط یک تغییر کوچیک جا مونده، با --no-edit همون پیام قبلی می‌مونه و ادیتور هم باز نمی‌شه:
‌
git add login.py
git commit --amend --no-edit

‌
خروجی:
‌
[main a72abbd] add login page
Date: Mon Oct 26 10:00:00 2026 +0330
2 files changed, 3 insertions(+)
create mode 100644 login.py
create mode 100644 settings.py

‌
💎هش کامیت عوض می‌شه
گیت کامیت قبلی رو ویرایش نمی‌کنه؛ یک کامیت تازه می‌سازه و برنچ رو می‌بره روی اون. برای همین توی این مثال هش اول 5600caf شد و بعد a72abbd. کامیت‌های قبلی هم هنوز توی reflog پیدا می‌شن:
‌
git reflog -3

‌
خروجی:
‌
a72abbd HEAD@{0}: commit (amend): add login page
5600caf HEAD@{1}: commit (amend): add login page
0984448 HEAD@{2}: commit: add login pgae

‌
⚠️اگه کامیت رو قبلاً push کردین
بعد از amend، تاریخچهٔ شما با سرور فرق می‌کنه و push معمولی رد می‌شه:
‌
 ! [rejected]        main -> main (non-fast-forward)

‌
فقط روی برنچ شخصی خودتون و با این دستور push کنید. اگه برنچ روی سرور با آخرین چیزی که شما ازش دیدین فرق کرده باشه (مثلاً هم‌تیمی‌تون چیز جدیدی فرستاده)، گیت push رو رد می‌کنه و کار اون پاک نمی‌شه:
‌
git push --force-with-lease

‌
▫️ روی برنچ مشترک مثل main، کامیتی رو که بقیه گرفتن amend نکنید؛ بهتره یک کامیت اصلاحی جدید بسازید.
▫️ گزینهٔ --amend فقط آخرین کامیت رو عوض می‌کنه؛ برای کامیت‌های قدیمی‌تر باید سراغ rebase تعاملی برید.
▫️ اگه -m رو ننویسید، ادیتور با پیام قبلی باز می‌شه تا همون‌جا ویرایشش کنید.
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
هوش‌مصنوعی🔥برنامه‌نویسی | کدینگ‌یار
#کوئیز #پایتون ‌ پیش‌نیاز: تعریف تابع، پارامتر و return ⏳ پاسخ کوییز ۲۴ ساعت دیگه توی همین کانال میاد. ‌ @codingyar
#پاسخ_کوییز #پایتون
‌
🔔 پاسخ کوییز بالا (همین کوییزی که بهش ریپلای زدم) رو در زیر ببینید ⬇️
‌
✅ جواب درست: «0 6»
‌
وقتی داخل یک تابع به اسمی مقدار می‌دیم، پایتون اون اسم رو یک متغیر محلی (مخصوص همون تابع) در نظر می‌گیره. پس count داخل add یک متغیر جدیده که فقط تا پایان اجرای تابع وجود داره و هیچ ربطی به count بیرونی نداره، حتی با اینکه اسمشون یکیه.
‌
تابع با n برابر ۳ صدا زده می‌شه، count محلی می‌شه ۳ × ۲ = ۶ و همین مقدار برگردونده می‌شه؛ پس result برابر ۶ هست. ولی count بیرونی هیچ‌وقت تغییر نکرده و همون ۰ می‌مونه.
‌
اشتباه رایج: گزینهٔ «6 6» یعنی فکر کنیم تابع، count بیرونی رو عوض کرده. برای این کار باید داخل تابع از global استفاده می‌کردیم (که معمولاً توصیه نمی‌شه و بهتره مقدار رو با return بگیریم، همون کاری که اینجا با result انجام شده). گزینهٔ «3 6» یعنی n رو با count بیرونی قاطی کنیم و گزینهٔ «0 0» یعنی فکر کنیم تابع، count بیرونی رو برمی‌گردونه.


‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
❤1
#خبر #هوش_مصنوعی #OpenAI
‌
🚀 مدل GPT-6.1 Terra از OpenAI منتشر شد
‌
شرکت OpenAI مدل سریع و میان‌ردهٔ GPT-6.1 Terra رو معرفی کرد؛ مدلی که روی درک تصویر، کار با کامپیوتر (دیدن صفحه و انجام کار توی اپ‌ها) و نوشتن طبیعی‌تر تمرکز داره. طبق اعلام OpenAI، توی آزمون Agents’ Last Exam هم‌سطح GPT-6 Astra عمل می‌کنه، با یک‌دهم قیمت هر توکن، و کارها رو به‌طور میانگین بیش از ۳ برابر سریع‌تر از Astra و GPT-6.1 Sol تموم می‌کنه.
‌
این مدل برای کاربران Plus، Pro، Enterprise و Edu توی ChatGPT Work و Codex در حال عرضه‌ست. برنامه‌نویس‌ها هم با نام gpt-6.1-terra از طریق API بهش دسترسی دارن، با قیمت ۱ دلار برای هر میلیون توکن ورودی و ۵ دلار برای هر میلیون توکن خروجی (۵۰٪ ارزون‌تر از GPT-5.6 Terra). توی VS Code هم از طریق GitHub Copilot در دسترسه.
‌
🔗 اطلاعیهٔ رسمی OpenAI رو اینجا بخونید
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
❤1
#خبر #هوش_مصنوعی #Cursor
‌
🤖 کیت Agent SDK کرسر منتشر شد
‌
کرسر Agent SDK رو به‌صورت عمومی منتشر کرد؛ همون فریم‌ورکی که خودش برای ساخت ایجنت‌هایی مثل Bugbot و Security Review ازش استفاده می‌کنه. با این کیت، ایجنت مثل یک پروژهٔ نرم‌افزاری تعریف می‌شه: دستورالعمل‌ها توی فایل‌های Markdown و ابزارها به شکل تابع‌های TypeScript، که می‌شه مثل بقیهٔ کد نسخه‌بندی و ریویوشون کرد.
‌
ایجنت ساخته‌شده رو می‌شه با یک دستور روی زیرساخت کرسر دیپلوی کرد یا روی سرور خودتون اجراش کرد. ابزار ارزیابی (eval) هم داخلش هست تا اثر هر تغییر روی رفتار ایجنت رو بسنجید. این ایجنت‌ها می‌تونن توی اسلک، پول‌ریکوئست‌ها و ایشو ترکرها کار کنن.
‌
🔗 معرفی رسمی Agent SDK رو اینجا بخونید
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
❤1
#آموزش #پایتون
‌
⚡️ می‌دونستین برای یک کلاس که فقط داده نگه می‌داره، لازم نیست __init__ و __repr__ و __eq__ رو دستی بنویسید؟
‌
دکوراتور @dataclass از ماژول استاندارد dataclasses (بدون نصب) این متدها رو از روی فیلدهایی که با نوعشون تعریف کردین خودش می‌سازه:
‌
from dataclasses import dataclass

@dataclass
class User:
name: str
age: int = 18

u = User("Sara", 25)
print(u)
print(u == User("Sara", 25))
print(User("Ali"))

‌
خروجی:
‌
User(name='Sara', age=25)
True
User(name='Ali', age=18)

‌
یعنی سازنده با مقدار پیش‌فرض، نمایش خوانا موقع print و مقایسه با == بر اساس مقدار فیلدها، همه بدون یک خط کد اضافه آماده‌ست.
‌
✔️ لیست به‌عنوان مقدار پیش‌فرض
اگه برای یک فیلد مستقیم لیست خالی [] بذارید، پایتون همون موقع تعریف کلاس خطا می‌ده:
‌
ValueError: mutable default <class 'list'> for field items is not allowed: use default_factory

‌
راه درست field(default_factory=list) هست تا هر شیء لیست جدای خودش رو بگیره:
‌
from dataclasses import dataclass, field

@dataclass
class Cart:
items: list = field(default_factory=list)

a = Cart()
b = Cart()
a.items.append("book")
print(a, b)

‌
خروجی:
‌
Cart(items=['book']) Cart(items=[])

‌
💎 شیء فقط‌خواندنی با frozen
با frozen=True بعد از ساختن شیء دیگه نمی‌شه فیلدهاش رو عوض کرد:
‌
from dataclasses import dataclass

@dataclass(frozen=True)
class Point:
x: int
y: int

p = Point(1, 2)
p.x = 5

‌
خروجی (خط آخر خطا):
‌
dataclasses.FrozenInstanceError: cannot assign to field 'x'

‌
یک مزیت دیگه‌ش اینه که شیء frozen رو می‌شه توی set یا به‌عنوان کلید دیکشنری استفاده کرد.
‌
⚠️ نوع فیلدها چک نمی‌شه
نوعی که جلوی هر فیلد می‌نویسید فقط برای خوانایی و ابزارهایی مثل mypy هست؛ خود dataclass مقدار اشتباه رو رد نمی‌کنه:
‌
from dataclasses import dataclass

@dataclass
class User:
name: str
age: int = 18

print(User("Sara", "twenty"))

‌
خروجی:
‌
User(name='Sara', age='twenty')

‌
اگه اعتبارسنجی ورودی لازم دارین، سراغ کتابخونهٔ Pydantic برید.
‌
▫️ با تابع asdict شیء رو به dict تبدیل کنید (مثلاً برای ساختن JSON):
‌
from dataclasses import dataclass, asdict

@dataclass
class User:
name: str
age: int = 18

print(asdict(User("Sara", 25)))

‌
خروجی:
‌
{'name': 'Sara', 'age': 25}

‌
▫️ فیلدی که مقدار پیش‌فرض نداره نباید بعد از فیلدی بیاد که پیش‌فرض داره؛ وگرنه موقع تعریف کلاس TypeError می‌گیرید.
▫️ با order=True مقایسه‌هایی مثل < هم ساخته می‌شه و فیلدها به ترتیب تعریف مقایسه می‌شن.
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
#خبر #هوش_مصنوعی #Runway
‌
🎬 ابزار App Studio به Runway اضافه شد
‌
شرکت Runway ابزار تازه‌ای به اسم App Studio معرفی کرد؛ کافیه با زبان ساده توضیح بدید چه ابزاری می‌خواید تا خودش یه اپ اختصاصی با رابط کاربری مخصوص بسازه که با مدل‌های تصویر، ویدیو و صدای Runway کار می‌کنه، بدون نیاز به کدنویسی. چند اپ آماده هم داخلش هست، مثل عوض کردن بازیگر ویدیو، ساخت تصویر حرفه‌ای از یه عکس محصول و ویرایش دقیق فقط یه بخش از تصویر.
‌
ساخت اپ برای همهٔ پلن‌های پولی فعاله و از کردیت حساب کم می‌کنه؛ کاربران رایگان فقط می‌تونن اپ‌های آماده یا اپ‌هایی که باهاشون به اشتراک گذاشته شده رو اجرا کنن.
‌
🔗 اطلاعیهٔ رسمی Runway رو اینجا بخونید
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
❤3
هوش‌مصنوعی🔥برنامه‌نویسی | کدینگ‌یار
#کوئیز #پایتون ‌ پیش‌نیاز: رشته‌ها و متدهای upper و capitalize ⏳ پاسخ کوییز ۲۴ ساعت دیگه توی همین کانال میاد. ‌ @codingyar
#پاسخ_کوییز #پایتون
‌
🔔 پاسخ کوییز بالا (همین کوییزی که بهش ریپلای زدم) رو در زیر ببینید ⬇️
‌
✅ جواب درست: «python Python»
‌
رشته‌ها در پایتون تغییرناپذیرن (immutable)؛ یعنی هیچ متدی نمی‌تونه خود رشته رو عوض کنه. متدهایی مثل upper و capitalize همیشه یک رشتهٔ جدید می‌سازن و برمی‌گردونن.
‌
توی خط دوم، upper رشتهٔ جدید PYTHON رو می‌سازه، ولی چون اون رو توی هیچ متغیری ذخیره نکردیم، دور ریخته می‌شه و name همون python می‌مونه. خط سوم، capitalize یک رشتهٔ جدید با حرف اول بزرگ می‌سازه و این بار نتیجه توی title ذخیره می‌شه؛ پس title برابر Python هست.
‌
اشتباه رایج: گزینهٔ «PYTHON Python» یعنی فکر کنیم upper خود name رو بزرگ کرده. برای این کار باید نتیجهٔ upper رو دوباره توی خود name ذخیره کنیم. گزینهٔ «PYTHON PYTHON» علاوه بر همین اشتباه، فرض می‌کنه capitalize فقط حرف اول رو بزرگ می‌کنه و به بقیه دست نمی‌زنه؛ در حالی که capitalize بقیهٔ حروف رو کوچیک می‌کنه. گزینهٔ «python python» هم یعنی فکر کنیم نتیجهٔ capitalize ذخیره نشده، در حالی که title همون نتیجه رو گرفته.

‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
❤4👍1
#خبر #هوش_مصنوعی #Gemini
‌
🧠 گوگل مدل Gemini 4 Carbon رو معرفی کرد
‌
گوگل دیپ‌مایند از Gemini 4 Carbon رونمایی کرد و اون رو قوی‌ترین مدل خودش می‌دونه؛ فقط دو هفته بعد از Gemini 4 Argon. طبق اعلام گوگل، این مدل توی شاخص Artificial Analysis با نمرهٔ ۵۹ رتبهٔ اول رو گرفته و توی کدنویسی، کارهای ایجنتی و طولانی، و مخصوصاً امنیت سایبری (پیدا کردن و پچ کردن آسیب‌پذیری‌ها و نوشتن کد امن‌تر) پیشرفت زیادی داشته.
‌
فعلاً فقط برای گروهی از متخصص‌های امنیت سایبری در دسترسه و قراره به‌زودی برای توسعه‌دهنده‌ها، کسب‌وکارها و کاربرها هم بیاد. قیمت اولیهٔ API هم ۲ دلار برای هر میلیون توکن ورودی و ۱۰ دلار برای خروجی اعلام شده.
‌
🔗 معرفی رسمی Gemini 4 Carbon رو اینجا بخونید
‌
آموزش هوش مصنوعی و برنامه نویسی 👇
@codingyar
وبسایت آموزشی:
www.codingyar.com
❤3