سلام دوستان لطفا در نظر سنجی پایین شرکت کنید
🔎🔎
آیا سطح مطالب خوبه ؟ یعنی ما مطالب تخصصی تر رو ارائه بدیم یا همین منوال ادامه بدیم و یا سطح مطالب رو بیاریم پایین تر؟
🔎🔎
آیا سطح مطالب خوبه ؟ یعنی ما مطالب تخصصی تر رو ارائه بدیم یا همین منوال ادامه بدیم و یا سطح مطالب رو بیاریم پایین تر؟
Anonymous Poll
61%
بله سطح مطالب خوبه و همینجور ادامه بدین✅
27%
نه سطح مطالب پایینه و بهتره مطالب تخصصی تر رو ارائه بدین📌
12%
نه سطح مطالب بالاست و بهتره مطالب ساده تر رو ارائه بدین🤝
کی لاگر (Keylogger) نرمافزاری یا سختافزاری است که به طور مخفیانه فعالیتهای کاربر را ضبط میکند، بهویژه کلیدهایی که بر روی صفحهکلید فشار داده میشوند.
▎انواع کی لاگرها
1. نرمافزاری:
• برنامههایی که بر روی سیستم نصب میشوند و فعالیتهای کاربر را در پسزمینه ضبط میکنند.
2. سختافزاری:
• دستگاههای فیزیکی که بین صفحهکلید و کامپیوتر قرار میگیرند و کلیدهای فشرده شده را ضبط میکنند.
▎کاربردها
• جاسوسی: جمعآوری اطلاعات شخصی و حساس.
• نظارت: استفاده در محیطهای کاری برای پیگیری فعالیتهای کارکنان.
• تحقیق: تحلیل رفتار کاربران برای بهبود نرمافزارها.
▎نکات امنیتی
• استفاده غیرمجاز از کی لاگرها غیرقانونی است.
• برای محافظت از خود، از نرمافزارهای ضدویروس و ضدبدافزار استفاده کنید و مراقب لینکها و فایلهای مشکوک باشید
https://t.me/comma_code_python1
▎انواع کی لاگرها
1. نرمافزاری:
• برنامههایی که بر روی سیستم نصب میشوند و فعالیتهای کاربر را در پسزمینه ضبط میکنند.
2. سختافزاری:
• دستگاههای فیزیکی که بین صفحهکلید و کامپیوتر قرار میگیرند و کلیدهای فشرده شده را ضبط میکنند.
▎کاربردها
• جاسوسی: جمعآوری اطلاعات شخصی و حساس.
• نظارت: استفاده در محیطهای کاری برای پیگیری فعالیتهای کارکنان.
• تحقیق: تحلیل رفتار کاربران برای بهبود نرمافزارها.
▎نکات امنیتی
• استفاده غیرمجاز از کی لاگرها غیرقانونی است.
• برای محافظت از خود، از نرمافزارهای ضدویروس و ضدبدافزار استفاده کنید و مراقب لینکها و فایلهای مشکوک باشید
https://t.me/comma_code_python1
Telegram
پایتون | python | برنامهنویسی | comma.code
به ⭐️کانال پایتونِ ما⭐️ خوش اومدی؛ جایی که کدها زنده میشن و ایدهها به واقعیت تبدیل میشدن! 🚀 چه تازهکار باشی و چه حرفه ای، اینجا کلی چیز منتظرته
حرفی سخنی انتقادی: @ir_379
حرفی سخنی انتقادی: @ir_379
پایتون | python | برنامهنویسی | comma.code pinned Deleted message
جنگ ها تموم میشن
کشورها به زندگی عادی برمیگردند
اما خائنین هیچ وقت نمیتونن راحت بخوابند
در هیچ نظام سیاسی
در هیچ نظام فکری
و با هیچ توجیهی
خائن نمیتونه برای خیانت خودش دلیل بیاره
جنگ ما امروز با خائنینه
به امید صلح و رفاه برای مردم ایران
کشورها به زندگی عادی برمیگردند
اما خائنین هیچ وقت نمیتونن راحت بخوابند
در هیچ نظام سیاسی
در هیچ نظام فکری
و با هیچ توجیهی
خائن نمیتونه برای خیانت خودش دلیل بیاره
جنگ ما امروز با خائنینه
به امید صلح و رفاه برای مردم ایران
🔴غیررسمی: یک گروه هکری مدعی هک بانک ملی و انتشار اطلاعات مربوط به ۷۳ میلیون حساب این بانک شده
https://t.me/comma_code_python1
https://t.me/comma_code_python1
Telegram
پایتون | python | برنامهنویسی | comma.code
به ⭐️کانال پایتونِ ما⭐️ خوش اومدی؛ جایی که کدها زنده میشن و ایدهها به واقعیت تبدیل میشدن! 🚀 چه تازهکار باشی و چه حرفه ای، اینجا کلی چیز منتظرته
حرفی سخنی انتقادی: @ir_379
حرفی سخنی انتقادی: @ir_379
دوستان به زودی دوباره آموزشات خودمونو اگه اینترنت و فیلترینگ اجازه بده هم میزاریم
https://t.me/comma_code_python1
https://t.me/comma_code_python1
Telegram
پایتون | python | برنامهنویسی | comma.code
به ⭐️کانال پایتونِ ما⭐️ خوش اومدی؛ جایی که کدها زنده میشن و ایدهها به واقعیت تبدیل میشدن! 🚀 چه تازهکار باشی و چه حرفه ای، اینجا کلی چیز منتظرته
حرفی سخنی انتقادی: @ir_379
حرفی سخنی انتقادی: @ir_379
رکورد جهانی سرعت اینترنت در ژاپن شکسته شد!
۲۲.۹ پیتابیت بر ثانیه!! با این سرعت میشه ۱۰۰۰۰ فیلم سینمایی با کیفیت 4K رو تنها در عرض ۱ ثانیه دانلود کرد.
https://ecoiran.com/%D8%A8%D8%AE%D8%B4-%D8%A7%D8%AE%D8%A8%D8%A7%D8%B1-%D8%AA%DA%A9%D9%86%D9%88%D9%84%D9%88%DA%98%DB%8C-168/51814-%D8%B3%D8%B1%D8%B9%D8%AA-%D8%AF%DB%8C%D9%88%D8%A7%D9%86%D9%87-%D9%88%D8%A7%D8%B1-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA-%D8%AF%D8%B1-%DA%98%D8%A7%D9%BE%D9%86-%D9%BE%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%AA-%D8%AF%D8%B1-%D8%AB%D8%A7%D9%86%DB%8C%D9%87
۲۲.۹ پیتابیت بر ثانیه!! با این سرعت میشه ۱۰۰۰۰ فیلم سینمایی با کیفیت 4K رو تنها در عرض ۱ ثانیه دانلود کرد.
https://ecoiran.com/%D8%A8%D8%AE%D8%B4-%D8%A7%D8%AE%D8%A8%D8%A7%D8%B1-%D8%AA%DA%A9%D9%86%D9%88%D9%84%D9%88%DA%98%DB%8C-168/51814-%D8%B3%D8%B1%D8%B9%D8%AA-%D8%AF%DB%8C%D9%88%D8%A7%D9%86%D9%87-%D9%88%D8%A7%D8%B1-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA-%D8%AF%D8%B1-%DA%98%D8%A7%D9%BE%D9%86-%D9%BE%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%AA-%D8%AF%D8%B1-%D8%AB%D8%A7%D9%86%DB%8C%D9%87
سلام رفقا 🖖
خوب و خوش و تندرست باشید. 😊
دوستان میخواستم تو این پست یه مسئله مهم در برنامهنویسی رو توضیح بدم که اغلب فک میکنن یکیه ولی درحالیکه دو مفهوم اساسی و جدا هستن. 🧐 دقت کنین فقط برای پایتون نیست و تو همهٔ زبانها این دو مفهوم هستن.
1. کتابخانه (Library) 📚
2. فریمورک (Framework) 🏗️
یه کتابخونه مجموعهای از کدهای قابل استفادهٔ مجدد که میتوانید در پروژههای خود به آنها دسترسی داشته باشید. ✅
ولی
یه فریمورک محیطی هست که برای توسعهٔ نرمافزار فراهم شده و شامل مجموعهای از ابزارها، کتابخانهها و الگوهای طراحی هستش. ⚙️
از کتابخونهها برای انجام کارها استفاده میشه، مثلاً ویرایش عکس، پردازشهای ریاضی و محاسباتی و... ولی از فریمورکها برای ساخت یک نوع خاص برنامه استفاده میشه، مثلاً طراحی سایت. 🌐
پس دقت کنین، شما تو کتابخونه به هر روشی که دلتون میخواد میتونین برنامههاتونو گسترش بدین و کنترل بیشتری روی کد دارین، 🕹️ ولی در فریمورک باید طبق ساختار فریمورک جلو برین و از اون تبعیت کنین. 👮♂️
یه فریمورک که داخل پایتون هستش و میتونیم نام ببریم django 🐍 که باید طبق اون سایت رو جلو ببریم و حتما url ها و view هارو طبق ساختاری که اون بهمون میگه درستشون کنیم. 😑
کتابخونه هام اگه مثال بخواین قبلا در معرفی های کتابخونه ها کلی مثال زدم
خوب و خوش و تندرست باشید. 😊
دوستان میخواستم تو این پست یه مسئله مهم در برنامهنویسی رو توضیح بدم که اغلب فک میکنن یکیه ولی درحالیکه دو مفهوم اساسی و جدا هستن. 🧐 دقت کنین فقط برای پایتون نیست و تو همهٔ زبانها این دو مفهوم هستن.
1. کتابخانه (Library) 📚
2. فریمورک (Framework) 🏗️
یه کتابخونه مجموعهای از کدهای قابل استفادهٔ مجدد که میتوانید در پروژههای خود به آنها دسترسی داشته باشید. ✅
ولی
یه فریمورک محیطی هست که برای توسعهٔ نرمافزار فراهم شده و شامل مجموعهای از ابزارها، کتابخانهها و الگوهای طراحی هستش. ⚙️
از کتابخونهها برای انجام کارها استفاده میشه، مثلاً ویرایش عکس، پردازشهای ریاضی و محاسباتی و... ولی از فریمورکها برای ساخت یک نوع خاص برنامه استفاده میشه، مثلاً طراحی سایت. 🌐
پس دقت کنین، شما تو کتابخونه به هر روشی که دلتون میخواد میتونین برنامههاتونو گسترش بدین و کنترل بیشتری روی کد دارین، 🕹️ ولی در فریمورک باید طبق ساختار فریمورک جلو برین و از اون تبعیت کنین. 👮♂️
یه فریمورک که داخل پایتون هستش و میتونیم نام ببریم django 🐍 که باید طبق اون سایت رو جلو ببریم و حتما url ها و view هارو طبق ساختاری که اون بهمون میگه درستشون کنیم. 😑
کتابخونه هام اگه مثال بخواین قبلا در معرفی های کتابخونه ها کلی مثال زدم
DOS.py
17.2 KB
سلام دوستان
این یک سورس dos هستش که توسط یکی از ادمینها @Haj_DARVISH آماده شده و ازش میتونید استفاده کنید
هدف از این سورس حمله به یک سری از تارگت های اسرائیل و آمریکا بوده و استفاده اشتباه ازش مشخصا شامل خود شخص استفاده کننده میشه پس لطفا درست ازش استفاده کنید
کتابخانه های استفاده شده:
os,sys,time,socket,random,requests,threading,re,json,ssl,who's,asyncio,platform,warnings,string,urllib,colorama,concurrent,datetime
📱 https://t.me/comma_code_python1
📱 https://www.instagram.com/comma.code?igsh=Y2VoNzNzOGRsaHNx
📱 https://youtube.com/@comma_code_youtube?si=ATebfVntbEldsG5K
این یک سورس dos هستش که توسط یکی از ادمینها @Haj_DARVISH آماده شده و ازش میتونید استفاده کنید
هدف از این سورس حمله به یک سری از تارگت های اسرائیل و آمریکا بوده و استفاده اشتباه ازش مشخصا شامل خود شخص استفاده کننده میشه پس لطفا درست ازش استفاده کنید
کتابخانه های استفاده شده:
os,sys,time,socket,random,requests,threading,re,json,ssl,who's,asyncio,platform,warnings,string,urllib,colorama,concurrent,datetime
Please open Telegram to view this post
VIEW IN TELEGRAM
سلام بچه ها چطورید
اقا ما تصمیم داریم ی چالش CTF گونه باحال راه اندازی کنیم
داستانش چیه؟
قراره که به دوتا تیم تقسیم بشیم. ی blue team و ی red team
همونطور که خودتون میدونید وظیفه بلو تیم اینه که اسیب پذیری های ی برنامه رو تشخیص بده و پچشون کنه تا کسی نتونه بهش نفوذ کنه و وظیقه رد تیم هم اینه که به برنامه نفوذ کنه ی جورایی...
خلاصه ، توی این چالش بلو تیم باید سعی کنه ی برنامه توسعه بده که از کاربر ی لایسنس دریافت کنه و بعد از اینکه برنامه چک کرد لایسنس درسته یا نه ، به کاربر اجازه ورود رو بده یا اینکه بگه لایسنست اشتباهه
بلو تیم همچین برنامه ای رو با python یا C باید توسعه بده و فایل کامپایل شده رو تحویل رد تیم بده ، اینجا رد تیم دست به کار میشه و باید سعی کنن که بدون وارد کردن لایسنس به برنامه وارد بشن
هرکی از رد تیم تونست همچین کاریو بکنه میاد به بلو تیم میگه که اقا من تونستم به برنامتون نفود کنم... بلو تیم دوباره باید سعی کنه اسیب پذیری ها رو شناسایی کنه و جلوی رد تیم رو بگیره...
این چالش جایزه ای نخواهد داشت و فقط جهت سرگرمی برگزار میشه
اگه دوست داشتید شرکت کنید واسم پیام بفرستید :
@ir_379
اقا ما تصمیم داریم ی چالش CTF گونه باحال راه اندازی کنیم
داستانش چیه؟
قراره که به دوتا تیم تقسیم بشیم. ی blue team و ی red team
همونطور که خودتون میدونید وظیفه بلو تیم اینه که اسیب پذیری های ی برنامه رو تشخیص بده و پچشون کنه تا کسی نتونه بهش نفوذ کنه و وظیقه رد تیم هم اینه که به برنامه نفوذ کنه ی جورایی...
خلاصه ، توی این چالش بلو تیم باید سعی کنه ی برنامه توسعه بده که از کاربر ی لایسنس دریافت کنه و بعد از اینکه برنامه چک کرد لایسنس درسته یا نه ، به کاربر اجازه ورود رو بده یا اینکه بگه لایسنست اشتباهه
بلو تیم همچین برنامه ای رو با python یا C باید توسعه بده و فایل کامپایل شده رو تحویل رد تیم بده ، اینجا رد تیم دست به کار میشه و باید سعی کنن که بدون وارد کردن لایسنس به برنامه وارد بشن
هرکی از رد تیم تونست همچین کاریو بکنه میاد به بلو تیم میگه که اقا من تونستم به برنامتون نفود کنم... بلو تیم دوباره باید سعی کنه اسیب پذیری ها رو شناسایی کنه و جلوی رد تیم رو بگیره...
این چالش جایزه ای نخواهد داشت و فقط جهت سرگرمی برگزار میشه
اگه دوست داشتید شرکت کنید واسم پیام بفرستید :
@ir_379
پایتون | python | برنامهنویسی | comma.code
سلام بچه ها چطورید اقا ما تصمیم داریم ی چالش CTF گونه باحال راه اندازی کنیم داستانش چیه؟ قراره که به دوتا تیم تقسیم بشیم. ی blue team و ی red team همونطور که خودتون میدونید وظیفه بلو تیم اینه که اسیب پذیری های ی برنامه رو تشخیص بده و پچشون کنه تا کسی نتونه…
البته بگم این چالش توسط امید طراحی شده و اونا جلو میبرن
من صرفا شما رو لینک میکنم به گروه چالش
من صرفا شما رو لینک میکنم به گروه چالش
سلام دوستان! حالتون چطوره؟ 😊
بحث امروز درباره تفاوت زبانهای کامپایلری و مفسری! 🧐
دوتا تفاوت اصلی دارن ✌️
1. نحوه اجرا (Execution): 👨🦽👨🦼
• زبانهای مفسری:👨🦽
کدها خط به خط اجرا میشن.
این یعنی اگر یه تابع رو در خط 10 تعریف کرده باشین و در خط 5 اون رو فراخوانی کنین، احتمالاً با خطا مواجه میشین. چرا؟ چون مفسر (interpreter) هنوز به تعریف تابع نرسیده.
برای مثال: JavaScript (اگه اسکریپتهای JavaScript رو در HTML/CSS قرار بدین، معمولاً باید در انتهای صفحه قرار بگیرن تا به عناصر صفحه دسترسی داشته باشه
و Python که بهصورت خط به خط اجرا میشه.
• زبانهای کامپایلری: 👨🦼
کامپایلر (compiler) کل کد رو یکجا به کد ماشین (machine code) یا (زبان اسمبلی) تبدیل میکنه.
پس، مثال قبلی رو اگه بخوایم بگیم اگر تابعی رو قبل از تعریفش فراخوانی کنین، کامپایلر میتونه این مشکل رو شناسایی کنه و خطا بده (یا به روشی این مشکل رو هندل کنه)، ولی دیگه زمان اجرا (runtime) با این مشکل مواجه نمیشین.
برای مثال: زبانهای Java و خانواده
C (C, C++, C#)
2. فرآیند تبدیل به کد ماشین (Machine Code Conversion): ⚙️
• زبانهای کامپایلری:
ابتدا، کد توسط کامپایلر به کد ماشین تبدیل میشه و سپس احرا میشه و فایل کامپایل شده مثل فایل های exe در ویندوز میمونه و اون فایل رو فقط ران میگیرین
• زبانهای مفسری:
این زبان ها یک مفسر یا (interpreter) دارن که کد منبع رو خط به خط میخونه و همون لحظه به دستورات ماشین تبدیل و اجرا میکنه.
کد ماشین به وجود اومده بعد از به پایان رسیدن اجرای برنامه از حافظه حذف میشه.
حالا یه سوال اساسی.
چرا تبدیل کد زبان پایتون به فایلهای اجرایی (exe) برای محافظت از کد منبع پیشنهاد نمیشه؟ 🤷♂
https://t.me/comma_code_python1
بحث امروز درباره تفاوت زبانهای کامپایلری و مفسری! 🧐
دوتا تفاوت اصلی دارن ✌️
1. نحوه اجرا (Execution): 👨🦽👨🦼
• زبانهای مفسری:👨🦽
کدها خط به خط اجرا میشن.
این یعنی اگر یه تابع رو در خط 10 تعریف کرده باشین و در خط 5 اون رو فراخوانی کنین، احتمالاً با خطا مواجه میشین. چرا؟ چون مفسر (interpreter) هنوز به تعریف تابع نرسیده.
برای مثال: JavaScript (اگه اسکریپتهای JavaScript رو در HTML/CSS قرار بدین، معمولاً باید در انتهای صفحه قرار بگیرن تا به عناصر صفحه دسترسی داشته باشه
و Python که بهصورت خط به خط اجرا میشه.
• زبانهای کامپایلری: 👨🦼
کامپایلر (compiler) کل کد رو یکجا به کد ماشین (machine code) یا (زبان اسمبلی) تبدیل میکنه.
پس، مثال قبلی رو اگه بخوایم بگیم اگر تابعی رو قبل از تعریفش فراخوانی کنین، کامپایلر میتونه این مشکل رو شناسایی کنه و خطا بده (یا به روشی این مشکل رو هندل کنه)، ولی دیگه زمان اجرا (runtime) با این مشکل مواجه نمیشین.
برای مثال: زبانهای Java و خانواده
C (C, C++, C#)
2. فرآیند تبدیل به کد ماشین (Machine Code Conversion): ⚙️
• زبانهای کامپایلری:
ابتدا، کد توسط کامپایلر به کد ماشین تبدیل میشه و سپس احرا میشه و فایل کامپایل شده مثل فایل های exe در ویندوز میمونه و اون فایل رو فقط ران میگیرین
• زبانهای مفسری:
این زبان ها یک مفسر یا (interpreter) دارن که کد منبع رو خط به خط میخونه و همون لحظه به دستورات ماشین تبدیل و اجرا میکنه.
کد ماشین به وجود اومده بعد از به پایان رسیدن اجرای برنامه از حافظه حذف میشه.
حالا یه سوال اساسی.
چرا تبدیل کد زبان پایتون به فایلهای اجرایی (exe) برای محافظت از کد منبع پیشنهاد نمیشه؟ 🤷♂
https://t.me/comma_code_python1
پایتون | python | برنامهنویسی | comma.code
سلام دوستان! حالتون چطوره؟ 😊 بحث امروز درباره تفاوت زبانهای کامپایلری و مفسری! 🧐 دوتا تفاوت اصلی دارن ✌️ 1. نحوه اجرا (Execution): 👨🦽👨🦼 • زبانهای مفسری:👨🦽 کدها خط به خط اجرا میشن. این یعنی اگر یه تابع رو در خط 10 تعریف کرده باشین و در خط 5 اون…
خب بخوایم جواب این سوال رو بدیم ببینین تقریبا تو زبان های مفسری (نه همه زبان های مفسری یه سریاشون)
وقتی کد رو کامپایل میکنیم متادیتا کد(نام متغییر، نام کلاس، نام توابع) رو در بایت کد ذخیره میکنه و وقتی دی کامپایل میکنیم همه متغییر ها و کلاس ها توابع به اسم اصلی رو از همون بایت کد میخونیه و همشون مثل روز اول بر میگردونه.
مثلا در کد زیر
اگر ما اینو کامپایل کنیم و بعد دوباره دیکامپایل کنیم تنها چیزی که تو کد دیگه نمیبینیم کامنت ها هستن که اونا هم تو اول راه موقع کامپایل کردن حذف میشن.
این هم کد دیکامپایل شده کد بالا
فقط کمی ساختار کد تو رشته ها فرق کرده و بقیه ساختار همونطور باقی مونده
وقتی کد رو کامپایل میکنیم متادیتا کد(نام متغییر، نام کلاس، نام توابع) رو در بایت کد ذخیره میکنه و وقتی دی کامپایل میکنیم همه متغییر ها و کلاس ها توابع به اسم اصلی رو از همون بایت کد میخونیه و همشون مثل روز اول بر میگردونه.
مثلا در کد زیر
class Calculator:
def __init__(self, name):
self.user_name = name
def print_hello(self):
print(f"Hello, {self.user_name}!")
def add_words(self, word1, word2):
result = word1 + " " + word2
print(f"Combined: {result}")
return result
# دریافت ورودی از کاربر
username = input("Enter your name: ")
calc = Calculator(username)
calc.print_hello()
w1 = input("Enter first word: ")
w2 = input("Enter second word: ")
calc.add_words(w1, w2)
اگر ما اینو کامپایل کنیم و بعد دوباره دیکامپایل کنیم تنها چیزی که تو کد دیگه نمیبینیم کامنت ها هستن که اونا هم تو اول راه موقع کامپایل کردن حذف میشن.
این هم کد دیکامپایل شده کد بالا
class Calculator:
def __init__(self, name):
self.user_name = name
def print_hello(self):
print('Hello, {}!'.format(self.user_name))
def add_words(self, word1, word2):
result = word1 + ' ' + word2
print('Combined: {}'.format(result))
return result
username = input('Enter your name: ')
calc = Calculator(username)
calc.print_hello()
w1 = input('Enter first word: ')
w2 = input('Enter second word: ')
calc.add_words(w1, w2)
فقط کمی ساختار کد تو رشته ها فرق کرده و بقیه ساختار همونطور باقی مونده
پایتون | python | برنامهنویسی | comma.code
خب بخوایم جواب این سوال رو بدیم ببینین تقریبا تو زبان های مفسری (نه همه زبان های مفسری یه سریاشون) وقتی کد رو کامپایل میکنیم متادیتا کد(نام متغییر، نام کلاس، نام توابع) رو در بایت کد ذخیره میکنه و وقتی دی کامپایل میکنیم همه متغییر ها و کلاس ها توابع به اسم…
یه چیزی که تو پایتون زیاد میبین پوشه pycache هست برای هر پکیج و یا فایل جدا گانه ایجاد میشه این محل ذخیره بایت کد برای هر فایل هستش که موقع ران کردن کد ایجاد میشه پایتون با کش کردن بایت کد ها سرعت خودشو تقریبا 25 الی 30 درصد افزایش میده
این موقع ران شدن یه کد چک.میکنه اگه فایلی تغییر نکرده باشه دیگه بایت کد جدیدی تولید نمیکنه
این موقع ران شدن یه کد چک.میکنه اگه فایلی تغییر نکرده باشه دیگه بایت کد جدیدی تولید نمیکنه
به نظرتون اگر کد زیر رو اجرا کنیم چی خروجی رو میده:🤔
لطفا اول اجرا کن و بعد ادامه رو بخون😉
خب خروجی اینجوری میشه👇 :
😳 ولی چرا خروجی اینجوری شد؟
🔰 اینجا پارامتر x به صورت پیشفرض یک لیست خالی [] تعریف شده. اما تو زبان پایتون مقادیر پیشفرض، زمان تعریف تابع فقط یک بار محاسبه و سیو میشن
پس اگر ما تابع fun رو چند بار صدا کنیم، x به همون لیست اولیه (همونی که اولین بار ساخته شده) اشاره میکنه و تغییراتی که رو این لیست انجام میدیم برای باقی فراخونی ها هم حفظ میشه.
☁️ ریز تر که بخوام بگم:
💠 1. اولین بار که تابع فراخوانی میشه لیست خالی ساخته میشه و بعد مقدار 1 بهش اضافه میشه و حالا لیست ما [1] هستش.
💠 2. وقتی که دوباره تابع رو فراخوانی میکنیم دیگه x جدید ساخته نمیشه و به لیست آخر که [1] هستش اشاره میکنه و کاری که میخوایم رو روش انجام میده و حالا لیست ما برابر شده با [1,1]
💠 3. صدا زدن بعدی هم همین روند رو ادامه میده و لیست ما میشه [1,1,1]
✅ اضافه کنم که این اتفاق روی متغیر هایی از نوع تغییر پذیر پیش میاد چون وقتی ما تغییری روی این نوع متغییر ها انجام میدیم این تغییر روی آدرس فعلی حافظه انجام میشه ولی وقتی روی متغییر های غیر قابل تغییر عملیات انجام میدیم یک شی جدید ایجاد میشه و ارجاع به اون شی جدید اشاره میکنه . خب مشخص شد چون ارجاع در متغییر های قابل تغییر داره به همون آدرس اشاره میکنه این اتفاق پیش میاد
امیدوارم مفید بوده باشه براتون🙏 ❤️
📱 کانال تلگرام
📱 پیچ اینستاگرام
📱 چنل یوتیوب
🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤
def fun(x=[]):
x.append(1)
return x
print(fun())
print(fun())
print(fun())
لطفا اول اجرا کن و بعد ادامه رو بخون
خب خروجی اینجوری میشه
[1]
[1, 1]
[1, 1, 1]
🔰 اینجا پارامتر x به صورت پیشفرض یک لیست خالی [] تعریف شده. اما تو زبان پایتون مقادیر پیشفرض، زمان تعریف تابع فقط یک بار محاسبه و سیو میشن
پس اگر ما تابع fun رو چند بار صدا کنیم، x به همون لیست اولیه (همونی که اولین بار ساخته شده) اشاره میکنه و تغییراتی که رو این لیست انجام میدیم برای باقی فراخونی ها هم حفظ میشه.
امیدوارم مفید بوده باشه براتون
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
پایتون | python | برنامهنویسی | comma.code
به ⭐️کانال پایتونِ ما⭐️ خوش اومدی؛ جایی که کدها زنده میشن و ایدهها به واقعیت تبدیل میشدن! 🚀 چه تازهکار باشی و چه حرفه ای، اینجا کلی چیز منتظرته
حرفی سخنی انتقادی: @ir_379
حرفی سخنی انتقادی: @ir_379