Forwarded from Curious Geek ⚡️
ریگار تارگریان دردسترس قرار گرفت
این لُرد وظیفه وصل کردن جامعه های حرفه ای برنامهنویسی تلگرامی به یک دیگر را دارد!
تفاوتی نمیکند در چه گروهی پیام بدید. کسانی که باید ، پیام را دریافت میکنند!
موجب افتخار ماست که تاکنون این جوامع پذیرای ریگار بودند:
@Pluto_Devs @FullstacksJs @LinuxNewbies
🔗 Telegram / Discord
https://pluto.community
🆔 @Pluto_Community
این لُرد وظیفه وصل کردن جامعه های حرفه ای برنامهنویسی تلگرامی به یک دیگر را دارد!
تفاوتی نمیکند در چه گروهی پیام بدید. کسانی که باید ، پیام را دریافت میکنند!
موجب افتخار ماست که تاکنون این جوامع پذیرای ریگار بودند:
@Pluto_Devs @FullstacksJs @LinuxNewbies
🔗 Telegram / Discord
https://pluto.community
🆔 @Pluto_Community
Forwarded from کانال اطلاعرسانی توزیع پارچ
This media is not supported in your browser
VIEW IN TELEGRAM
یکی از ویژگیهای ترمینال پیشفرض پارچ گنوم، امکان اجرا کردن کانتینرها (بارگنجها) با یک کلیک هستش.
شما میتونید distrobox و podman را نصب کنید، کانتینرهای مورد نیازتون رو بسازید و سپس با یک کلیک بهشون وارد بشید.
@ParchLinux
شما میتونید distrobox و podman را نصب کنید، کانتینرهای مورد نیازتون رو بسازید و سپس با یک کلیک بهشون وارد بشید.
@ParchLinux
Forwarded from Curious Geek ⚡️
جان اسنو در دسترس قرار گرفت
این لُرد تارگریان وظیفه ساخت پُل بین دیسکورد و تلگرام را دارد. تفاوتی نمیکند در دیسکورد پیام میدهید یا تلگرام! جان پیام ها را به مقصد میرساند.
🔗 Telegram / Discord
https://pluto.community
🆔 @Pluto_Community
این لُرد تارگریان وظیفه ساخت پُل بین دیسکورد و تلگرام را دارد. تفاوتی نمیکند در دیسکورد پیام میدهید یا تلگرام! جان پیام ها را به مقصد میرساند.
🔗 Telegram / Discord
https://pluto.community
🆔 @Pluto_Community
Forwarded from ⚝
یکی از چیزهای قشنگی که grasshopper بهم یاد داد، این بود که برای راهاندازی یک کسبوکار نوپا که احتمالاً میتونه باعث پیشرفت شخصیتون هم بشه، این بود که ارتباط بین علاقهتون خارج از دنیای رایانه و همچنین دنیای رایانه رو پیگیری کنید.
به عنوان مثال، کسی عاشق گربهست و راهاندازی یه کسبوکار نوپا مرتبط با گربه که محصولاتی در این حیطه میفروشه یا آموزشهایی در رابطه با گربه میده، میتونن موضوعات خوبی باشن برای چنین فردی.
علّتش هم واضحه، علاقه باعث پیشبرد و تلاش مضاعف برای کسبوکار نوپای شما، به واسطهٔ علاقهست.
ضمناً، لازمه بگم که کسبوکار نوپا رو تو این متن، حتّیٰ در حدّ یه محصول ساده هم میتونید ببینید.
#note #learn
@amiria703_channel
به عنوان مثال، کسی عاشق گربهست و راهاندازی یه کسبوکار نوپا مرتبط با گربه که محصولاتی در این حیطه میفروشه یا آموزشهایی در رابطه با گربه میده، میتونن موضوعات خوبی باشن برای چنین فردی.
علّتش هم واضحه، علاقه باعث پیشبرد و تلاش مضاعف برای کسبوکار نوپای شما، به واسطهٔ علاقهست.
ضمناً، لازمه بگم که کسبوکار نوپا رو تو این متن، حتّیٰ در حدّ یه محصول ساده هم میتونید ببینید.
#note #learn
@amiria703_channel
Forwarded from Gopher Academy
🔵 عنوان مقاله
Telemetry in Go 1.23 and Beyond
🟢 خلاصه مقاله:
در ابتدای سال 2023، Russ Cox مفهوم 'تلمتری شفاف' را برای زبان برنامه نویسی Go معرفی کرد. در ابتدا، این ویژگی به طور پیشفرض فعال بود، اما به دلیل واکنشهای منفی برخی افراد، تبدیل به ویژگی اختیاری شد و در نسخه 1.23 Go گنجانده شد. در این مقاله، Robert توضیح میدهد که چگونه این نوع تلمتری میتواند مفید باشد، اگر شما تصمیم به فعال کردن آن داشته باشید. تواناییهای تلمتری شفاف شامل جمعآوری دادهها و اطلاعات به صورت زمانواقعی درباره عملکرد و استفاده از نرم افزار است که میتواند کمک شایانی به بهبود و توسعهی بیشتر Go کند. اما با وجود فواید آن، مساله حفظ حریم خصوصی و اطمینان از امنیت دادهها همچنان موضوع مهمی است که باید مورد توجه قرار گیرد.
🟣لینک مقاله:
https://golangweekly.com/link/159550/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Telemetry in Go 1.23 and Beyond
🟢 خلاصه مقاله:
در ابتدای سال 2023، Russ Cox مفهوم 'تلمتری شفاف' را برای زبان برنامه نویسی Go معرفی کرد. در ابتدا، این ویژگی به طور پیشفرض فعال بود، اما به دلیل واکنشهای منفی برخی افراد، تبدیل به ویژگی اختیاری شد و در نسخه 1.23 Go گنجانده شد. در این مقاله، Robert توضیح میدهد که چگونه این نوع تلمتری میتواند مفید باشد، اگر شما تصمیم به فعال کردن آن داشته باشید. تواناییهای تلمتری شفاف شامل جمعآوری دادهها و اطلاعات به صورت زمانواقعی درباره عملکرد و استفاده از نرم افزار است که میتواند کمک شایانی به بهبود و توسعهی بیشتر Go کند. اما با وجود فواید آن، مساله حفظ حریم خصوصی و اطمینان از امنیت دادهها همچنان موضوع مهمی است که باید مورد توجه قرار گیرد.
🟣لینک مقاله:
https://golangweekly.com/link/159550/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.dev
Telemetry in Go 1.23 and beyond - The Go Programming Language
Go 1.23 includes opt-in telemetry for the Go toolchain.
Forwarded from ⚝
برای یه روز هم که شده، بدون خودرو مسافرت کنید.
به تمام مترو و اتوبوسسوارها تبریک میگم.
#event #note
@amiria703_channel
به تمام مترو و اتوبوسسوارها تبریک میگم.
#event #note
@amiria703_channel
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
میزلینوکسی GNOME 47 “Denver” منتشر شد
جزئیات به زودی پست میکنم
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
حمایت -donate
https://zarinp.al/learninghive.ir
جزئیات به زودی پست میکنم
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
حمایت -donate
https://zarinp.al/learninghive.ir
Forwarded from Ninja Learn | نینجا لرن
💎 هدر Authentication چیه و چطوری ازش استفاده کنیم؟ 💎
امروز میخوایم درباره هدر Authentication صحبت کنیم، چیزی که اپلیکیشنهای وب برای احراز هویت (Authentication) استفاده میکنن و توی دنیای APIها خیلی کاربرد داره 😎.
هدر Authentication چیه؟ 🤔
هدر Authentication یه هدر HTTP هست که اطلاعات لازم برای احراز هویت کاربر رو توی درخواستها به سرور میفرسته. این هدر کمک میکنه که سرور بفهمه چه کسی داره درخواست رو میفرسته و اینکه اجازه دسترسی به منابع مختلف رو داره یا نه 🔐.
انواع هدر Authentication 🛡️
Basic Authentication 🔑
این سادهترین نوع Authentication هستش. توی این روش، نام کاربری و پسورد بهصورت base64 رمزگذاری میشن و بعد توی هدر قرار میگیرن. نمونهای از هدرش این شکلیه:
ولی چون اطلاعات رو بهصورت ساده (حتی با وجود base64) میفرسته، خیلی امن نیست و معمولاً توی HTTPS ازش استفاده میکنن.
Bearer Token 🏷️
توی این روش، از یه توکن (Token) بهجای نام کاربری و پسورد استفاده میکنن. این توکن معمولاً وقتی کاربر لاگین میکنه، از سرور میگیره و بعد توی درخواستها بهعنوان هدر ارسال میشه. هدرش این شکلیه:
این روش خیلی امنتر و محبوبتره، مخصوصاً توی APIهای مدرن و استفاده از JWT (JSON Web Tokens).
OAuth 2.0 🔑
این روش بیشتر برای احراز حویت با استفاده از سرویسهای بزرگی مثل گوگل و فیسبوک استفاده میشه. توی این مدل، شما یه Access Token از طرف سرویسدهنده میگیرید و بعد اون رو توی هدر میفرستید. خیلی شبیه به Bearer Token:
چطوری از هدر Authentication استفاده کنیم؟ 💻
فرض کن یه API داری که برای دسترسی به یه سری اطلاعات حساس نیاز به احراز هویت داره. برای اینکه کاربر بتونه به این اطلاعات دسترسی داشته باشه، باید توی درخواستش هدر Authentication رو بهدرستی تنظیم کنه.
مثلاً برای ارسال یه درخواست به API با استفاده از Bearer Token:
چرا هدر Authentication مهمه؟ 🛠️
1⃣ امنیت اطلاعات:
این هدر به سرور کمک میکنه مطمئن بشه که درخواست از یه کاربر معتبر ارسال شده.
2⃣ مدیریت دسترسی:
با استفاده از این هدر، میتونی سطح دسترسیهای مختلف رو برای کاربرها تنظیم کنی. مثلاً بعضی کاربران فقط به بخشهایی از اپلیکیشن دسترسی داشته باشن.
3⃣ یکپارچگی با API:
خیلی از APIها مثل REST و GraphQL نیاز دارن که کاربر با ارسال هدر Authentication خودش رو احراز هویت کنه.
جمعبندی 🎯
فهمیدیم هدر Authentication یکی از پرکاربردترین ابزارها برای احراز هویت توی وب و APIهاست. روشهای مختلفی برای استفاده ازش وجود داره، مثل Basic، Bearer Token و OAuth که بسته به نیازت میتونی از هرکدومشون استفاده کنی.
امید وارم مفید بوده باشه :)
@ninja_learn_ir
امروز میخوایم درباره هدر Authentication صحبت کنیم، چیزی که اپلیکیشنهای وب برای احراز هویت (Authentication) استفاده میکنن و توی دنیای APIها خیلی کاربرد داره 😎.
هدر Authentication چیه؟ 🤔
هدر Authentication یه هدر HTTP هست که اطلاعات لازم برای احراز هویت کاربر رو توی درخواستها به سرور میفرسته. این هدر کمک میکنه که سرور بفهمه چه کسی داره درخواست رو میفرسته و اینکه اجازه دسترسی به منابع مختلف رو داره یا نه 🔐.
انواع هدر Authentication 🛡️
Basic Authentication 🔑
این سادهترین نوع Authentication هستش. توی این روش، نام کاربری و پسورد بهصورت base64 رمزگذاری میشن و بعد توی هدر قرار میگیرن. نمونهای از هدرش این شکلیه:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
ولی چون اطلاعات رو بهصورت ساده (حتی با وجود base64) میفرسته، خیلی امن نیست و معمولاً توی HTTPS ازش استفاده میکنن.
Bearer Token 🏷️
توی این روش، از یه توکن (Token) بهجای نام کاربری و پسورد استفاده میکنن. این توکن معمولاً وقتی کاربر لاگین میکنه، از سرور میگیره و بعد توی درخواستها بهعنوان هدر ارسال میشه. هدرش این شکلیه:
Authorization: Bearer your-token-here
این روش خیلی امنتر و محبوبتره، مخصوصاً توی APIهای مدرن و استفاده از JWT (JSON Web Tokens).
OAuth 2.0 🔑
این روش بیشتر برای احراز حویت با استفاده از سرویسهای بزرگی مثل گوگل و فیسبوک استفاده میشه. توی این مدل، شما یه Access Token از طرف سرویسدهنده میگیرید و بعد اون رو توی هدر میفرستید. خیلی شبیه به Bearer Token:
Authorization: Bearer access-token
چطوری از هدر Authentication استفاده کنیم؟ 💻
فرض کن یه API داری که برای دسترسی به یه سری اطلاعات حساس نیاز به احراز هویت داره. برای اینکه کاربر بتونه به این اطلاعات دسترسی داشته باشه، باید توی درخواستش هدر Authentication رو بهدرستی تنظیم کنه.
مثلاً برای ارسال یه درخواست به API با استفاده از Bearer Token:
curl -H "Authorization: Bearer your-token-here" https://api.example.com/data
چرا هدر Authentication مهمه؟ 🛠️
1⃣ امنیت اطلاعات:
این هدر به سرور کمک میکنه مطمئن بشه که درخواست از یه کاربر معتبر ارسال شده.
2⃣ مدیریت دسترسی:
با استفاده از این هدر، میتونی سطح دسترسیهای مختلف رو برای کاربرها تنظیم کنی. مثلاً بعضی کاربران فقط به بخشهایی از اپلیکیشن دسترسی داشته باشن.
3⃣ یکپارچگی با API:
خیلی از APIها مثل REST و GraphQL نیاز دارن که کاربر با ارسال هدر Authentication خودش رو احراز هویت کنه.
جمعبندی 🎯
فهمیدیم هدر Authentication یکی از پرکاربردترین ابزارها برای احراز هویت توی وب و APIهاست. روشهای مختلفی برای استفاده ازش وجود داره، مثل Basic، Bearer Token و OAuth که بسته به نیازت میتونی از هرکدومشون استفاده کنی.
#authentication #headers #security
Forwarded from Anophel | آنوفل
بهترین فریمورک های وب Go در 2024
💠 با ادامه پیشرفت فناوری، نیاز روزافزونی به برنامه های کاربردی وب سریع، قابل اعتماد و مقیاس پذیر وجود دارد. Go که با نام Golang نیز شناخته می شود، یک زبان برنامه نویسی است که به دلیل سادگی، کارایی و همزمانی آن محبوبیت پیدا کرده است. این زبان تبدیل به ز...
💙 : بهترین فریمورک های وب Go در 2024
#گو #گولنگ #Gin #Echo
#گو #گولنگ #Gin #Echo
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Rust for Python developers
وقتی توی گروها سوال میبینم، از داخلش میشه فهمید باقی افراد روی چه مباحثی مشکل دارند.
مثلاً توی موضوع
میزنند، به اون
درصورتی که این برداشت اشتباه هست
موضوع
توی مثال:
شما میگی این دیتا میتونه
موضوع بعدی قوانین
مثلاً توی موضوع
lifetime متوجه شدم که خیلی از بچهها فکر میکنند, وقتی &’static strمیزنند، به اون
string slice دارن lifetime جدیدی میدهند.درصورتی که این برداشت اشتباه هست
موضوع
lifetime annotation هم مثل موضوع generic هست، شما وقتی میزنی T: Display داری میگی که من دیتایی رو میدم که حتماً Display trait براش پیادهسازی شده.توی مثال:
&’static strشما میگی این دیتا میتونه
lifetime به اندازه طول برنامه داشته باشه، اگر دیتایی بدید که این مقدار lifetime رو نداره کامپایل نمیشه و بهت ارور میدهموضوع بعدی قوانین
lifetime مشخص کردن توی توابع هست (تحت چه شرایطی حتماً lifetime نیازه) که خب بنظرم باشه برای یک پست دیگری.Forwarded from Python BackendHub (Mani)
Forwarded from کانال علی شیردستیان (Ali Shirdastian )
از طراحی گلدان و کفپوش پیاده روهای شهرداری تا طراحی لوگوی تیم فوتبال پرسپولیس
استاد مهران مستوفی، یکی از پیشگامان عرصه طراحی گرافیک در ایران با بیش از ۳۵ سال تجربه حرفهای، نامی آشنا و درخشان در این حوزه است. ایشان با تلفیق خلاقیت هنری و دانش فنی، آثاری ماندگار و تأثیرگذار خلق کردهاند که در حوزههای مختلف طراحی گرافیک از جمله طراحی لوگو، پوستر، جلد کتاب، نشانههای بصری، طراحی محیطی و... نمود یافته است. یکی از افتخارات وی دریافت تشویقنامه برای طراحی بدنه خودرو از شرکتهای بنز و بیامو آلمان است که نشان از توانایی بالای او در طراحی صنعتی دارد.
* آغاز فعالیت حرفهای: استاد مستوفی از سال ۱۳۶۵ فعالیت حرفهای خود را آغاز نمود و در همان ابتدای کار با کسب رتبههای برتر در مسابقات مختلف طراحی، تواناییهای خود را به اثبات رساند.
* دوران شکوفایی: در دهههای ۷۰ و ۸۰، ایشان با طراحی لوگو و نشانههای بصری برای سازمانها و شرکتهای معتبر همچون فدراسیون بولینگ ایران، سازمان تبلیغات اسلامی، شهرداری تهران، سازمان صنایع ملی ایران و... به شهرتی فراگیر دست یافتند.
* همکاری با نهادهای علمی و فرهنگی: استاد مستوفی همواره به همکاری با نهادهای علمی و فرهنگی علاقهمند بوده و در طراحی نشانهها و جلد کتابهای دانشگاهی، مراکز پژوهشی و انتشارات معتبر مشارکت داشته است.
* تدریس و پرورش نسل جدید طراحان: ایشان علاوه بر فعالیت حرفهای، سالها به تدریس طراحی در مراکز آموزشی مختلف پرداخته و در پرورش نسل جدید طراحان گرافیک نقش مؤثری داشتهاند.
* طراح رسمی تیمهای ورزشی: طراحی لوگوی تیم فوتبال پرسپولیس یکی از افتخارات بزرگ استاد مستوفی است که نشان از جایگاه ویژه ایشان در حوزه طراحی ورزشی دارد.
کارنامه حرفهای استاد مهران مستوفی، گنجینهای ارزشمند از آثار طراحی گرافیک است که نشان از تواناییها و مهارتهای بالای ایشان در این حوزه دارد. آثار ایشان الهامبخش نسلهای جدید طراحان بوده و به غنیسازی فرهنگ بصری کشور کمک شایانی کرده است.
استاد مهران مستوفی، یکی از افتخارات عرصه طراحی گرافیک ایران است و نام ایشان همواره با نوآوری، خلاقیت و کیفیت در این حوزه عجین خواهد بود.
@shirclub
استاد مهران مستوفی، یکی از پیشگامان عرصه طراحی گرافیک در ایران با بیش از ۳۵ سال تجربه حرفهای، نامی آشنا و درخشان در این حوزه است. ایشان با تلفیق خلاقیت هنری و دانش فنی، آثاری ماندگار و تأثیرگذار خلق کردهاند که در حوزههای مختلف طراحی گرافیک از جمله طراحی لوگو، پوستر، جلد کتاب، نشانههای بصری، طراحی محیطی و... نمود یافته است. یکی از افتخارات وی دریافت تشویقنامه برای طراحی بدنه خودرو از شرکتهای بنز و بیامو آلمان است که نشان از توانایی بالای او در طراحی صنعتی دارد.
* آغاز فعالیت حرفهای: استاد مستوفی از سال ۱۳۶۵ فعالیت حرفهای خود را آغاز نمود و در همان ابتدای کار با کسب رتبههای برتر در مسابقات مختلف طراحی، تواناییهای خود را به اثبات رساند.
* دوران شکوفایی: در دهههای ۷۰ و ۸۰، ایشان با طراحی لوگو و نشانههای بصری برای سازمانها و شرکتهای معتبر همچون فدراسیون بولینگ ایران، سازمان تبلیغات اسلامی، شهرداری تهران، سازمان صنایع ملی ایران و... به شهرتی فراگیر دست یافتند.
* همکاری با نهادهای علمی و فرهنگی: استاد مستوفی همواره به همکاری با نهادهای علمی و فرهنگی علاقهمند بوده و در طراحی نشانهها و جلد کتابهای دانشگاهی، مراکز پژوهشی و انتشارات معتبر مشارکت داشته است.
* تدریس و پرورش نسل جدید طراحان: ایشان علاوه بر فعالیت حرفهای، سالها به تدریس طراحی در مراکز آموزشی مختلف پرداخته و در پرورش نسل جدید طراحان گرافیک نقش مؤثری داشتهاند.
* طراح رسمی تیمهای ورزشی: طراحی لوگوی تیم فوتبال پرسپولیس یکی از افتخارات بزرگ استاد مستوفی است که نشان از جایگاه ویژه ایشان در حوزه طراحی ورزشی دارد.
کارنامه حرفهای استاد مهران مستوفی، گنجینهای ارزشمند از آثار طراحی گرافیک است که نشان از تواناییها و مهارتهای بالای ایشان در این حوزه دارد. آثار ایشان الهامبخش نسلهای جدید طراحان بوده و به غنیسازی فرهنگ بصری کشور کمک شایانی کرده است.
استاد مهران مستوفی، یکی از افتخارات عرصه طراحی گرافیک ایران است و نام ایشان همواره با نوآوری، خلاقیت و کیفیت در این حوزه عجین خواهد بود.
@shirclub
Forwarded from Gopher Academy
🔵 عنوان مقاله
Garble: A Toolchain to Obfuscate Go Builds
🟢 خلاصه مقاله:
مقاله مورد نظر درباره روشی به نام Garble برای مخفیسازی اطلاعات در برنامههای نوشته شده با زبان برنامهنویسی Go بحث میکند. این ابزار، که مناسب برای نسخههای 1.22 و بالاتر Go است، به کاربران امکان میدهد تا اطلاعات کمتری را در مورد کد منبع اصلی در باینریهای خود نگه دارند. با این حال، مقاله تأکید میکند که استفاده از روشهای محافظتی مثل Garble به منزله تضمین امنیت کامل نیست، بلکه صرفاً یک راهکار برای کاهش میزان اطلاعات قابل استخراج از برنامه توسط افراد خارجی محسوب میشود. این تکنیک همچنین میتواند به عنوان یک بخشی از استراتژی امنیتی متعادل استفاده شود، اما نباید به عنوان تنها اقدام امنیتی در نظر گرفته شود.
🟣لینک مقاله:
https://golangweekly.com/link/159570/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Garble: A Toolchain to Obfuscate Go Builds
🟢 خلاصه مقاله:
مقاله مورد نظر درباره روشی به نام Garble برای مخفیسازی اطلاعات در برنامههای نوشته شده با زبان برنامهنویسی Go بحث میکند. این ابزار، که مناسب برای نسخههای 1.22 و بالاتر Go است، به کاربران امکان میدهد تا اطلاعات کمتری را در مورد کد منبع اصلی در باینریهای خود نگه دارند. با این حال، مقاله تأکید میکند که استفاده از روشهای محافظتی مثل Garble به منزله تضمین امنیت کامل نیست، بلکه صرفاً یک راهکار برای کاهش میزان اطلاعات قابل استخراج از برنامه توسط افراد خارجی محسوب میشود. این تکنیک همچنین میتواند به عنوان یک بخشی از استراتژی امنیتی متعادل استفاده شود، اما نباید به عنوان تنها اقدام امنیتی در نظر گرفته شود.
🟣لینک مقاله:
https://golangweekly.com/link/159570/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - burrowers/garble: Obfuscate Go builds
Obfuscate Go builds. Contribute to burrowers/garble development by creating an account on GitHub.
Forwarded from Python BackendHub (Mani)
یک راهنمایی بزرگ:لاجیک کد مشکل نداره.
خروجی کنسول اینه:
در صورتی که باید Ma: Mani و Hir: Hirad باشه. چرا؟
@PyBackendHub
خروجی کنسول اینه:
Ma: Hirad
Hir: Hirad
در صورتی که باید Ma: Mani و Hir: Hirad باشه. چرا؟
@PyBackendHub
Forwarded from Python BackendHub (Mani)
برای اینکه بفهمین چطور کار میکنه، اول یه مثال سادهتر رو در نظر بگیرین:
قاعدتاً باید خروجیها ۴، ۵ و ۶ باشن، درسته؟ چون یه لیست از تابعهای lambda داره که هر کدوم یه عدد میگیرن و x رو بهش اضافه میکنن.
ولی در واقع خروجیها ۶، ۶ و ۶ هستن! چرا این اتفاق میافته؟
چون این lambdaها تو این مثال closure هستن. تو پایتون، توابع closure زمانی اجرا میشن که صدا زده بشن، نه وقتی که تعریف میشن! و به متغیرهایی که تو scopeشون هست رفرنس میزنن.
تو این مثال، x یه بار تو foo تعریف شده و یه بار تو main. وقتی تو main اون closureها رو صدا میزنه که تو foo تعریف شده بودن، xی که استفاده میکنن همونیه که تو foo بوده، نه اون x تو main.یعنی الان تو این مثال x داخل lambda عدد ۳ میشه نه ۵.
چرا؟ چون داخلش توابع closure یک cell هست که arguement رو ذخیره کرده. و تو همون اسکوپی که تعریف شده اون مدام آپدیت میشه اگه تغییر کنه. بنابراین اینجا چون scope تابع main دیگه با closureمون یکی نیست پس دیگه تغییر نمیکنه.
یک مقاله برای درک بهتر این موضوع تو medium
یک بلاگ راجب اشتباهات رایج تو پایتون این شکلی
@PyBackendHub
adders = []
for x in [1, 2, 3]:
adders.append(lambda number: number + x)
for adder in adders:
print(adder(3))
قاعدتاً باید خروجیها ۴، ۵ و ۶ باشن، درسته؟ چون یه لیست از تابعهای lambda داره که هر کدوم یه عدد میگیرن و x رو بهش اضافه میکنن.
ولی در واقع خروجیها ۶، ۶ و ۶ هستن! چرا این اتفاق میافته؟
چون این lambdaها تو این مثال closure هستن. تو پایتون، توابع closure زمانی اجرا میشن که صدا زده بشن، نه وقتی که تعریف میشن! و به متغیرهایی که تو scopeشون هست رفرنس میزنن.
def foo():
adders = []
for x in [1, 2, 3]:
adders.append(lambda number: number + x)
return adders
def main():
adders = foo()
x = 5
for adder in adders:
print(adder(3))
تو این مثال، x یه بار تو foo تعریف شده و یه بار تو main. وقتی تو main اون closureها رو صدا میزنه که تو foo تعریف شده بودن، xی که استفاده میکنن همونیه که تو foo بوده، نه اون x تو main.یعنی الان تو این مثال x داخل lambda عدد ۳ میشه نه ۵.
چرا؟ چون داخلش توابع closure یک cell هست که arguement رو ذخیره کرده. و تو همون اسکوپی که تعریف شده اون مدام آپدیت میشه اگه تغییر کنه. بنابراین اینجا چون scope تابع main دیگه با closureمون یکی نیست پس دیگه تغییر نمیکنه.
یک مقاله برای درک بهتر این موضوع تو medium
یک بلاگ راجب اشتباهات رایج تو پایتون این شکلی
@PyBackendHub
Medium
Late Binding Variables: It’s a Trap!
A quick overview of a Python feature that can produce surprising bugs
Forwarded from DevTwitter | توییت برنامه نویسی
Forwarded from Anophel | آنوفل
#Go #Golang #گو #گولنگ
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from ⚝
ما طموزی هستیم، طرفداران محیط زیست
برای ایران 🇮🇷 برای زمین 🌏
محیطزیست سالم، حقّ اوّلیهٔ همهٔ موجودات
tamozi.ir
instagram.com/tamozi.ir
@tamozi
t.iss.one/+eujf7n6TFldkMjVk
#معرفی #موقت
برای ایران 🇮🇷 برای زمین 🌏
محیطزیست سالم، حقّ اوّلیهٔ همهٔ موجودات
tamozi.ir
instagram.com/tamozi.ir
@tamozi
t.iss.one/+eujf7n6TFldkMjVk
#معرفی #موقت
Forwarded from دستاوردهای یادگیری عمیق(InTec)
خسروپناه، دبیر شورای عالی انقلاب فرهنگی:
باید یه هوشمصنوعی مخصوص بسازیم و باهاش مملکتو اداره کنیم
اگر این خبر تأیید شد، از طرف خمینی بهش بگید:
خیلی خررررری
باید یه هوشمصنوعی مخصوص بسازیم و باهاش مملکتو اداره کنیم
اگر این خبر تأیید شد، از طرف خمینی بهش بگید:
خیلی خررررری