کداکسپلور | CodeExplore
Open in Telegram
با کد اکسپلور یاد بگیر، لذت ببر و بروز باش ⚡️😉 👨🏻💻 ارتباط با ما : @CodeExploreSup گروه : @CodeExplore_Gap تبلیغات در کد اکسپلور : @CodeExploreAds
Show more8 348
Subscribers
+1124 hours
+337 days
+24330 days
Posts Archive
⚡️اومدیم با یه آموزش دیگه از سری آموزشی OOP
📣امروز قراره راجب مبحث ارث بری ( Inheritance ) در OOP صحبت کنیم.
📌ارث بری ( Inheritance ) چیست؟؟
-ارث بری یعنی اینکه ما ویژگی ها و رفتار های یک کلاس رو به کلاس دیگه انتقال بدیم، یعنی یه کلاس داشته باشیم که ویژگی هاشو از یه کلاس دیگه به ارث برده و استفاده میکنه
⭐️کلاس های پایه و زیرکلاس ها:
-وقتی ما داریم از ارث بری استفاده میکنیم، اون کلاسی که ویژگی ها و متدهاشو به کلاس دیگه منتقل میکنه، بهش میگن کلاس پایه یا کلاس اصلی ( شما فرض کن پدر ) و اون کلاسی هم که ویژگی ها و متدهارو به ارث میبره میشه زیرکلاس یا کلاس مشتق (اینم میشه بچش)
👑ویژگی های ارث بری یا همون Inheritance چیه؟
✅کد تکراری کمتر: وقتی از ارث بری استفاده میکنیم، میتونیم کد های مشابه رو توی کلاس های مختلف به اشتراک بزاریم و هی تکرارشون نکنیم
✅سازماندهی بهتر : ارث بری این اجازه رو بمون میده که کلاس هارو به صورت سلسله مراتبی مدیریت و سازماندهی کنیم و ارتباط بین اونارو بهتر مدیریت کنیم
✅توسعه پذیری : وقتی زیرکلاس های جدید اضافه میکنیم میتونیم به سادگی رفتار ها و متد و ویژگی های جدید بهشون اضافه کنیم
حالا باهم یه مثال ببینیم:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a sound.`);
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name);
this.breed = breed;
}
bark() {
console.log(`${this.name} barks!`);
}
}
const myDog = new Dog("Buddy", "Golden Retriever");
myDog.speak(); // Outputs: "Buddy makes a sound."
myDog.bark(); // Outputs: "Buddy barks!"
#oop #oop_6
☕️ @CodeExplore🫠 به درخواست بچه ها ویدیو آموزشی ران کردن این پروژه رو براتون ریکورد کردم
🤝 آخر ویدیو رو با گوشی ضبط کردم و از توی تلگرام با لپ تاپ LED هارو با ربات تلگرامی خاموش و روشن کردم
Developer : @Py_Sudo
☕️ @CodeExplore
😍 پست ناب جدید گیتهاب :
🌐 https://github.com/iRLords/ESP-Telegram-Bot
🍕 همونطور که توی خود README.md پست توضیح دادم ، شما میتونید وسایل الکترونیکی خودتون رو با این کد کنترل کنید!
🍀 فقط کافیه که میکروپایتون رو روی میکروکنترلر خودتون پروگرم کنید و این کد رو بریزید روش و ادیتش بزنید و میکروکنترلر رو به برق متصل کنید! بعد از اون میتونید وسایل الکترونیکیی که بهش متصل کردید رو تحت ربات تلگرامی و بصورت دکمه شیشه ای کنترل کنید ;)
🌿 همچنین میتونید با کلیک روی دکمه شیشه ای پین مورد نظر ، از وضعیت خاموش بودن یا روشن بودن پین باخبر بشید
☄️ مشکلی داشتید میتونید تو پیوی مطرح کنید.
🌹 موفق باشید.
🌐 Developer : @Py_Sudo
☕️ @CodeExplore
💻 منبعی برای یادگیری برنامهنویسی که با تمرین های مختلف میتونید زبان های محبوب مختلف رو یاد بگیرید.
🔗 https://codestepbystep.com
#learn #practice #programming
☕️ @CodeExplore
✨تو لینک زیر می تونین با دیدن فیلم و تمرین کردن مفاهیم ساختمان داده ها و الگوریتم ها رو درک کنید ( راستی گواهی شرکت در دوره رو بهتون رایگان میده)
🌐 https://log2base2.com/courses/problem-solving-beginners/?lb_content=log2base2.com/dashboard/certificate&lb_cta=courses-nav_bar
📱 مایکروسافت با Copilot+ PC، لپتاپهای ویندوزی مبتنی بر هوش مصنوعی را معرفی میکند
▪️مایکروسافت در رویداد اخیر خود، از ابتکار جدیدی به نام Copilot+ PC رونمایی کرد که شامل لپتاپهای سرفیس جدید و همچنین سیستمهای همکار با تراشههای Snapdragon X Elite کوالکام میشود. این ابتکار بر روی هوش مصنوعی متمرکز است و هدف آن ارائه تجربهای سریعتر و کارآمدتر برای کاربران ویندوز است.
▪️قابلیت جدید Recall که همراه با Copilot+ PC معرفی شد، به ویندوز ١١ اجازه میده تا هر چیزی که میبیننه یا هر کاری که کاربر با کامیپوتر انجام میده رو در حافظه نگه داره و بعدا بتونه بین تمام این اطلاعات جستجو کنه. مایکروسافت گفته تمامی این اطلاعات روی دستگاه و به صورت آفلاین پردازش میشن.
#Ai #Copilot #Microsoft
☕️ @CodeExplore
💥خوش اومدین به یکی دیگه از آموزش های OOP
امروز قراره به مبحث Encapsulation یا همون پوشش یا پوشاندن توی شیءگرایی بپردازیم
❓حالا Encapsulation چیه؟
-در اصل Encapsulation یعنی محدود کردن دسترسی به برخی از اجزای یک شیء، این کارو میتونیم با قرار دادن یسری داده ها و متد ها داخل کلاس انجام بدیم
☄️چرا باید از Encapsulation استفاده کنیم؟
-موقع استفاده از Encapsulation ، این اجازه به ما داده میشه که جزئیات رو از کاربران مخفی کنیم و فقط رابط کاربری رو نشون بدیم. اینطوری هم کدمون ساده تر و قابل فهم تره هم امنیت بیشتری داره و قابل نگهداری تره.
‼️استفاده از Getter و Setter در OOP ( برنامه نویسی شیءگرا ) : داخل OOP ما معمولا از getter و setter استفاده میکنیم تا دسترسی به ویژگی های یه شیء رو مدیریت و کنترل کنیم، این متد ها به ما این اجازه رو میدن که یسری عملیات خاص و کنترل شده رو هنگام دریافت یا تنظیم مقدار یه متغیر انجام بدیم
🔴حالا یه مثال میزنیم از getter و setter داخل OOP
class Car {
constructor(model) {
this._model = model;
}
get model() {
return this._model;
}
set model(value) {
if (value.length < 3) {
console.log('Model is too short.');
return;
}
this._model = value;
}
}
let myCar = new Car("Toyota");
console.log(myCar.model); // Outputs: "Toyota"
myCar.model = "VW";
console.log(myCar.model); // Outputs: "VW"
myCar.model = "X"; // Outputs: "Model is too short."
#oop #oop_5
☕️ @CodeExplore📱مایکروسافت Copilot رو به هوش مصنوعی قدرتمند GPT-4o مجهز میکنه!
مایکروسافت یه آپدیت فوقالعاده هیجانانگیز برای Copilot در نظر گرفته که اون رو به یه ابزار فوقالعاده قدرتمند تبدیل میکنه.
با این آپدیت، Copilot میتونه به صورت لحظهای محتوای صفحه شما رو ببینه و باهاتون صحبت کنه! ️ این یعنی Copilot میتونه در لحظه به شما کمک کنه، کدهاتون رو ویرایش کنه، به سوالاتتون پاسخ بده و حتی باهاتون چت کنه!
#Copilot #GPT4o
☕️ @CodeExplore
🌪 ریپازیتوری کاربردی از معروف ترین لیست های awesome گیت هاب که بصورت منظم آپدیت میشه
👉 https://github.com/jnv/lists
#tutorial #awesome #github
☕️ @CodeExplore
سلام. امیدوارم حالتون خوب باشه.
این ابزار کارش تزریق رنگ هست. اینطوری کار میکنه که هرچقدر که شما بخواید به صورت رندوم براتون کد رنگ تولید و تزریق میکنه (خودش خط هایی که توی فایل CSS مربوط به رنگ هست رو تشخیص میده.) و کار عوض کردن رنگ رو خیلی خیلی راحت کرده ولی میخوام علاوه بر تولید رندوم رنگ از یک سری سایت های مخصوص انتخاب پالت رنگ کد رنگ ها رو اسکرپ کنه. من با این کار آشنا نیستم و دانشگاه دارم از این جهت خوشحال میشم شما هم توی این کار همکاری کنید و بهش قابلیت اسکرپ رو اضافه کنید.
مطمئنم از این ابزار خوشتون میاد.😁
پس موفق باشید و امیدوارم ابزار بهتری برای برنامه نویس های فرانتاند خلق بشه.❤️
🌐 https://github.com/PAIREN1383/Color_Injector
#css #github
☕️ @CodeExplore | </Mr.M>
چیزهایی که باید یه برنامه نویس بلد باشه 👨💻
💬 البته مشخصا همشون اجبار نیست،کدوما رو بلدین؟ بنظرتون کار با دیتابیس برای همه برنامه نویس ها اجباره؟ یا ساختمان داده چطور؟
#programming
☕️ @CodeExplore
🔵 ایجاد پالت های رنگی با استفاده از تابع ()color-mix در CSS
تابع ()color-mix به ما این اجازه رو میده تا دو رنگی که می خوایم مخلوط کنیم رو مشخص کنیم و بعدش نتیجه رو خروجی بده. ما می تونیم مقدار هر رنگ در مخلوط رو کنترل کنیم، همچنین فضای تداخل رنگ رو مشخص کنیم که تعیین میکنه چطوری رنگ ها با همدیگه ترکیب میشن.
ما مقدار هر رنگ رو به صورت درصد مشخص می کنیم. اگر درصدهای هر دو رنگ رو حذف کنیم، تابع ()color-mix به طور پیش فرض برای هر کدوم از اونها از 50% حساب میکنه. همونطور که تو کد زیر نشان دادیم ، مخلوط کردن رنگ قرمز و آبی با مقدار برابر، به ما یک سایه بنفش خروجی میده.
.result {
background-color: color-mix(in srgb, blue, red);
}
#css #function #color
☕️ @CodeExplore🔥برگشتیم با یه اموزش دیگه از اموزش های OOP
امروز قراره به ادامه مباحث OOP و ساختار کلاس ها و ویژگی های اون بپردازیم
♾داخل آموزش قبلی یسری مثال هایی زدیم و بیشتر تمرکزمون روی کلاس و آبجکت بود، امروز قراره درباره 4 مفهوم دیگه صحبت کنیم:
🔵متود ها ( Methods ) : همونطور که قبلا گفتیم، متود ها همون فانکشن هایی هستن که داخل یه آبجکت وجود دارن، این فانکشن ها میتونن روی ویژگی های آبجکت تاثیراتی بزارن و با اونا کار کنن
🔵پراپرتی ها ( Properties ) : همون ویژگی ها و متغیر هایی هستن که به آبجکت تعلق دارن و میتونن هر نوعی از داده رو نگه دارن
🔵سازنده ( Constructor ) : سازنده یه متود خاصه که داخل کلاس وجود فراخوانی میشه، این متد معمولا برای مقدار دهی آبجکت جدید به کار میره و یسری ورودی میتونه بگیره که نسبتشون بده به آبجکت
🔵مخرب ( Destructor ) : مخرب هم یه متود خاص دیگه داخل کلاس هست که وقتی یک آبجکت دیگه نیاز نباشه فراخونی میشه و حذفش میکنه، این متود معمولا برای پاکسازی به کار میره تا حافظه رو خالی کنی یا اتصالات رو ببندی و داخل php و ++C استفاده میشه، توی Python و Java هم وجود دارن اما تو یسری زبان های دیگه به صورت خودکار و شکل های مختلف وجود دارن، مثلا داخل JavaScript میتونیم از کلمه کلیدی delete استفاده کنیم تا پراپرتی های یک آبجکت رو حذف کنیم یا حتی خود متغیر و ابجکتمون رو خالی کنیم
بریم یه مثال قشنگ هم باهم ببینیم:
class Person{
constructor(personName , personAge){
this.name = personName;
this.age = personAge;
}
walk(){
console.log(`${this.name} started walking`);
}
}
let person = new Person("Reza" , 50);
person.walk();
console.log(person);
delete person.age;
console.log(person);
let person = null;
📌خب توی مثال بالا ما یه کلاس Person داریم و سازنده کلاسمون میشه همون constructor که توی ورودی، اسم و سن شخص رو میگیره، داخل متود سازنده، ما property های آبجکت رو میسازیم و مقدار های ورودی رو بهشون نسبت میدیم حتی میشه یه مقدار دیفالت خودمون بزاریم و از ورودی نگیریم!
متود walk هم میاد یه جمله چاپ میکنه
⭐️حالا ما یه متغیر person ساختیم و این یه اینستنس یا نمونه از کلاس Person هست و ورودی هایی که توی constructor توضیح دادیم رو اینجا بهش پاس میدیم و آبجکتمون ساخته میشه
بعدش از متود walk استفاه کردیم
💎داخل خط های اخر هم مفهوم Destructor رو توی جاوا اسکریپت پیاده کردیم، اومدیم اول پراپرتی age رو ازش حذف کردیم، بعدشم کل متغیر رو خالی کردیم
#oop #oop_4
☕️ @CodeExploreسه تابع نسبتا کاربردی در پایتون ⌨️
🔢
bin():
این تابع عدد رو به باینری (دو دویی) تبدیل میکنه. یعنی به زبون کامپیوتر که فقط صفر و یک میفهمه. مثلا:
number = 10
binary = bin(number)
print(binary)
# خروجی: '0b1010'
اینجا عدد ۱۰ به باینری شده ۱۰۱۰ که کامپیوتر میفهمه. اون 0b هم نشون میده که این یه عدد باینریه.
🔢 oct():
این تابع عدد رو به سیستم هشتتایی تبدیل میکنه. یعنی به جای ده تا رقم (۰ تا ۹) از هشت تا رقم (۰ تا ۷) استفاده میکنه. مثلا:
number = 10
octal = oct(number)
print(octal)
# خروجی: '0o12'
اینجا عدد ۱۰ به هشتتایی شده ۱۲. اون 0o هم نشون میده که این عدد هشتتاییه.
🔢 hex():
این تابع عدد رو به هگزادسیمال (شانزدهتایی) تبدیل میکنه. یعنی از رقمهای ۰ تا ۹ و حروف A تا F استفاده میکنه. مثلا:
number = 255
hexadecimal = hex(number)
print(hexadecimal)
# خروجی: '0xff'
اینجا عدد ۲۵۵ به شانزدهتایی شده FF. اون 0x هم نشون میده که این عدد هگزادسیماله.
❓به چه کاری میان؟
به درد وقتی میخورن که بخوای با سیستمهای عددی مختلف کار کنی یا مثلا وقتی با برنامهنویسی سطح پایین و سختافزار سروکار داری.
#python #bin #oct #hex
☕️ @CodeExploreتو ابزار زیر می تونین ارائه هاتون رو توی ترمینال داشته باشید.
🌐 https://github.com/jaspervdj/patat/
#presentation #terminal
☕️ @CodeExplore
خب ادامه حالت هارو هم بگم تا نصفه ولش نکنیم 😀
خب حالت چهارم یکمی از سادگی خارج میشه و وارد بحث شی گرایی میشه! از الان بگم !
4️⃣ حالت چهارم شما دوتا underscope قبل اسم میزاری (که بهش میگن double underscope یا بین برنامه نویسا جا افتاده dunder) یعنی متغیر name__ رو میخونیم داندر نِیم
حالا جدا از اسمش ، این یکی دقیقا چیکار میکنه برامون؟ اینو کلا باید با مثال برم جلو 🤓
فرض کنید ما دوتا کلاس داریم که یکی از کلاس ها از اون یکی ارث بری میکنه :
class Human():
def __init__(self):
self.sex = 'male'
self.name = 'karim'
class Teacher(Human):
sef __init__(self):
super().__init__()
self.count = 2
self.name = 'math'
اگه به کلاس های بالا نگا کنید توی جفتشون یه فیلد name داریم ، و چون کلاس teacher از human ارث بری میکنه و داخل خودش صداش میزنه دوتا فیلد name باهم قاطی میشن 🥲
اونوقت ما چجوری میتونیم به جفتشون دسترسی داشته باشیم؟
اینجاست که dunder میاد وسط و مثال بالا رو تغییر میدیم:
class Human():
def __init__(self):
self.sex = 'male'
self.__name = 'karim'
class Teacher(Human):
sef __init__(self):
super().__init__()
self.count = 2
self.__name = 'math'
شاید بگید خب الانم که اسماشون باز شبیه همه، ولی داندر داره! اینجاست که پایتون میگه من دخالت میکنم و اسامی که به صورت dunder دار نوشته شدن رو تغییر میدم😎
بیاید یه شی بسازیم و ببنیم توش چیه :
t1 = Teacher()
dir(t1)
# ['_Human__name', '_Teacher__name', 'sex', 'count']
میبیند که با اضافه کردن dunder پایتون کلا اسم پراپرتی رو عوض کرد و اسم کلاس رو اولش چسبوند. اینجوری خیلی راحت از هم تفکیک میشن😁
5️⃣ و آخرین حالتم زمانیه که شما یه dunder اول اسم میزارید و یدونه هم اخر اسم
که میشه مثل __init__ که بهش میگن magic method و خود مفسر پایتون کاری به این نوع اسم گذاریتون نداره و فقط برای خوانایی کده! یعنی خودتون تصمیم میگیرد فلان تابع رو اینجوری تعریف کنید برای فلان کار (یعنی برای یه کار خاص رزروش کنید و بدونید خارج از اونجا هم کاری باهاش ندارید و فقط برای یه کاره)
مثلا همین __init__ رو وقتی داخل یه کلاس صدا میزنید یعنی تابع سازنده رو صدا زدید و میدونید که این تابع هم خارج از خود کلاس به کار نمیاد و فقط رزرو شده برای سازنده بودن!
در اخرم باید بگم برای سنیور شدن حتما این چیزا رو رعایت کنید. هم برای درک خودتون خوبه هم برای بقیه برنامه نویسایی که کدتونو نگا میکنن ✨
دیگه کوتاه تر از این نمیتونستم بکنم.
روز خوبی داشته باشید💓
#پست_پیشنهادی
#part2
#python #underscope #oop
☕️ @CodeExploreسلام به همه دوستان کد اکسپلوری ✌️
قراره امروز در رابطه با underscope در پایتون صحبت کنیم.(که واقعا احتمال میدم طولانی بشه ✨)
شاید Underscope برای تازه کارا یکم جدید باشه ولی زیاد به اسمش کار نداشته باشید چون همون آندرلاین خودمونه (_)
بخوام خیلی جامع توضیح بدم کلا ۵ حالت داریم که از underscope توی پایتون استفاده میکنیم.
1️⃣ اولین حالت بصورت استفاده خالی ازشه ، بزارید یه مثال ریز بزنم :
_ = 'hello'
# Or
for _ in range(1, 10):
print(_)
اگه جایی همچین چیزی دیدید ، اولین موردی که باید بدونید ، اینه که خود پایتون همیشه اخرین مقداری که به مفسر میدید رو داخل _ میریزه (به عنوان last variable) و دومین چیزی که باید بدونید اینه که برنامه نویسی که از underscope خالی استفاده میکنه، دنبال یه متغیر موقت میگرده و جای دیگه ایی ازش استفاده نمیکنه (مثلا داخل حلقه خیلی استفادش منطقیه 🙄)
کلا زمانی از underscope خالی استفاده میکنیم که واقعا نیازی به متغیر در جاهای دیگه نداریم و کلا فقط همونجا بکارمون میاد 🫠
حالت دوم تا پنجم استفاده از underscop در واقع میشه گفت به جایگشته !
یعنی یا قبل از اسم میاد یا بعدش یا از هر دو طرفش یا یدونه میاد یا دوتا
احتمالا گیج شدید ☹️
ولی الان مثال میزنم که درک کنیم.
2️⃣حالت دوم زمانیه که شما از یدونه underscope قبل از اسم یا متود استفاده میکنید . مثل زیر :
_name = 'xxx'
def _fun():
print(1)
خب حالا اصلا این اسم گذاری چیکار میکنه؟
اگه زبان دیگه ایی مثل جاوا یا php کار کرده باشید میدونید که اعضا داخل کلاس ها Access Modifiers دارن (خیلی ساده بخوام بهش اشاره کنم ، یعنی تعریف میکنه این متغیر از کجا بهش دسترسی داریم و کجا نداریم)
اگرم فقط پایتون کار کردید میدونید که پایتون اکسس مکسس نمیشناسه 🫡
و نمیتونید براش public , private و ... تعریف کنید . حالا اینارو برای چی گفتم؟ که برسم به underscope قبل از اسم؛ دقیقا یدونه اندرلاین قبل از اسم تابع یا متغیر باعث میشه که ما اون متغیر یا تابع رو private ببینیم و بدونیم که خارج از این کلاس استفاده نمیشه (البته توجه کنید که پایتون اصلا پیگیر اینا نیست! یعنی شما _ هم بزارید و import کنید بازم میتونید به اون متغیر دسترسی داشته باشید! این نوع نام گذاری بیشتر برای مشخص کردن برای خودتون و اعضا تیمه وگرنه خود پایتون کلا اهمیتی بهش نمیده! 😕)
البته نه که کلا اهمیت نده! زیر یه مثال میزنم تا اهمیتشو ببنیم :
Class C1:
name = 'amir'
_age = 21
فایل بالا رو ایمپورت میکنیم :
Class C2:
from C1 import name, _age
# کد بالا خیلی راحت بدون ارور اجرا میشه
# # # # #
import C1
C1._age
# بازم کد بالا بدون ارور اجرا میشه
# # # # #
from C1 import *
print(_age)
# ایندفعه به ارور میخوریم! پایتون فقط در زمانی آندراسکوپ رو ایمپورت نمیکنه که شما ستاره بزارید، در غیر اینصورت خیلی معمولی رفتار میکنه!!!!
حالت سومو من خودم خیلی دوست دارم😄
3️⃣ حالت سوم شما underscope رو بعد از اسم قرار میدید (ولی نه هر اسمی!) یعنی میشه گفت یجور تریک حساب میشه. مثلا شما میخواید یه متغیر تعریف کنید به اسم class ولی class خودش یه کلمه کلیدیه (شاید بگید خب اسمشو عوض میکنیم! اما یه وقتایی دقیقا اون متغیر نیاز به همچین اسمی داره ✅) اینجاست که به عنوان برنامه نویس underscope رو به ته اسم اضافه میکنیم :
class = 'class one'
# error bteaking
class_ = 'class two'
# without error
#پست_پیشنهادی
#part1
#python #underscope #variable #oop
☕️ @CodeExplore
Available now! Telegram Research 2025 — the year's key insights 
