๐ Inkapulyatsiya (Encapsulation) haqida batafsil tushuntirish
Inkapulyatsiya (Encapsulation) โ bu OOPning muhim tamoyillaridan biri. U ma'lumotlarni yashirish va faqat zarur joyda ularga kirish imkoniyatini yaratish uchun ishlatiladi. Maqsad โ sinf (class) ichidagi ma'lumotlarni (masalan, o'zgaruvchilarni) tashqi dunyodan (ja dunyomasku ๐ lekin boshqa qanday ifodalashni bilmadim) himoya qilish.
Nima uchun inkapsulyatsiya kerak? ๐ค
Xavfsizlik: Sinf ichidagi ma'lumotlarga to'g'ridan-to'g'ri kirishdan saqlanish, ma'lumotlarni buzilishdan himoya qilish.
Ma'lumotlarni nazorat qilish: Sinfning ichki ishlarini tashqi kodga ta'sir qilmasdan boshqarish.
Kodni soddalashtirish: Sinfning tashqi interfeysi orqali ma'lumotlar bilan ishlashni boshqarish.
Qanday qilib inkapsulyatsiyani amalga oshiramiz?
Private atributlar (xususiyatlar): Odatda sinfdagi o'zgaruvchilar boshida __ (ikkita pastki chiziq) qo'yilib private (yashirin) deb belgilanishi mumkin.
Getter va Setter metodlari: Bu metodlar orqali private ma'lumotlarga kirish va ularni o'zgartirish mumkin bo'ladi.
Nima bo'ldi?
__balance - private o'zgaruvchi. Bu o'zgaruvchini to'g'ridan-to'g'ri print qilishga urinsangiz, xato beradi, chunki bu o'zgaruvchi yashirilgan.
get_balance() - bu getter metod. Bu metod orqali balansni xavfsiz ko'rishimiz mumkin.
set_balance() - bu setter metod. Bu metod orqali balansni o'zgartirish mumkin, lekin biz faqat musbat qiymatlarni qabul qilishga ruxsat berdik.
Output:
Xulosa:
Private o'zgaruvchilar sinf ichida yashiriladi. Bunday o'zgaruvchilarga to'g'ridan-to'g'ri kirish mumkin emas.
Getter va setter metodlari orqali private ma'lumotlarga kirish mumkin. Getter yordamida ma'lumotni o'qish, setter yordamida esa o'zgartirish mumkin.
Bu usul inkapsulyatsiyani amalga oshirishga yordam beradi, ya'ni tashqi kod ma'lumotlarga bevosita kirish imkoniyatiga ega bo'lmaydi va ular faqat ma'lum metodlar orqali boshqariladi.
๐ก Foyda: Inkapsulyatsiya dasturdagi xatoliklarni kamaytiradi va ma'lumotlarni himoya qiladi.
@python_core_oop
Inkapulyatsiya (Encapsulation) โ bu OOPning muhim tamoyillaridan biri. U ma'lumotlarni yashirish va faqat zarur joyda ularga kirish imkoniyatini yaratish uchun ishlatiladi. Maqsad โ sinf (class) ichidagi ma'lumotlarni (masalan, o'zgaruvchilarni) tashqi dunyodan (ja dunyomasku ๐ lekin boshqa qanday ifodalashni bilmadim) himoya qilish.
Nima uchun inkapsulyatsiya kerak? ๐ค
Xavfsizlik: Sinf ichidagi ma'lumotlarga to'g'ridan-to'g'ri kirishdan saqlanish, ma'lumotlarni buzilishdan himoya qilish.
Ma'lumotlarni nazorat qilish: Sinfning ichki ishlarini tashqi kodga ta'sir qilmasdan boshqarish.
Kodni soddalashtirish: Sinfning tashqi interfeysi orqali ma'lumotlar bilan ishlashni boshqarish.
Qanday qilib inkapsulyatsiyani amalga oshiramiz?
Private atributlar (xususiyatlar): Odatda sinfdagi o'zgaruvchilar boshida __ (ikkita pastki chiziq) qo'yilib private (yashirin) deb belgilanishi mumkin.
Getter va Setter metodlari: Bu metodlar orqali private ma'lumotlarga kirish va ularni o'zgartirish mumkin bo'ladi.
class BankAccount:
def __init__(self, balance):
self.__balance = balance # Private ma'lumot (yashirilgan)
def deposit(self, amount): # Hisobga pul qo'shish
self.__balance += amount
def get_balance(self): # Hisob balansini ko'rsatish (getter)
return self.__balance
def set_balance(self, new_balance): # Hisob balansini o'zgartirish (setter)
if new_balance < 0:
print("Balans manfiy bo'lishi mumkin emas!")
else:
self.__balance = new_balance
# Bank hisobini yaratamiz
account = BankAccount(50000)
# To'g'ridan-to'g'ri __balance ga kirish mumkin emas
# print(account.__balance) # Bu xato beradi!
# Yashirilgan balansni olish uchun getter ishlatamiz
print(account.get_balance()) # 50000
# Yashirilgan balansni o'zgartirish uchun setter ishlatamiz
account.set_balance(70000)
print(account.get_balance()) # 70000
# Salbiy balans qo'yishning oldini olamiz
account.set_balance(-1000) # Balans manfiy bo'lishi mumkin emas!
print(account.get_balance()) # 70000
Nima bo'ldi?
__balance - private o'zgaruvchi. Bu o'zgaruvchini to'g'ridan-to'g'ri print qilishga urinsangiz, xato beradi, chunki bu o'zgaruvchi yashirilgan.
get_balance() - bu getter metod. Bu metod orqali balansni xavfsiz ko'rishimiz mumkin.
set_balance() - bu setter metod. Bu metod orqali balansni o'zgartirish mumkin, lekin biz faqat musbat qiymatlarni qabul qilishga ruxsat berdik.
Output:
50000
70000
Balans manfiy bo'lishi mumkin emas!
70000
Xulosa:
Private o'zgaruvchilar sinf ichida yashiriladi. Bunday o'zgaruvchilarga to'g'ridan-to'g'ri kirish mumkin emas.
Getter va setter metodlari orqali private ma'lumotlarga kirish mumkin. Getter yordamida ma'lumotni o'qish, setter yordamida esa o'zgartirish mumkin.
Bu usul inkapsulyatsiyani amalga oshirishga yordam beradi, ya'ni tashqi kod ma'lumotlarga bevosita kirish imkoniyatiga ega bo'lmaydi va ular faqat ma'lum metodlar orqali boshqariladi.
๐ก Foyda: Inkapsulyatsiya dasturdagi xatoliklarni kamaytiradi va ma'lumotlarni himoya qiladi.
@python_core_oop
๐1
Hi guys! ๐ Nima gaplar? ๐
Obunachilarimizga faqat nazariy ma'lumotlar tushunarli bo'lmayotgan ekan ๐ฅฑ. Shuning uchun ๐ bundan buyog'iga ochiq manbalardan olingan video darslar ๐ va nazariy ma'lumotlar ๐ birga berilib ketiladi.
O'rganishdan to'xtamaymiz guys.
Good luck!!! ๐ซก
Obunachilarimizga faqat nazariy ma'lumotlar tushunarli bo'lmayotgan ekan ๐ฅฑ. Shuning uchun ๐ bundan buyog'iga ochiq manbalardan olingan video darslar ๐ va nazariy ma'lumotlar ๐ birga berilib ketiladi.
O'rganishdan to'xtamaymiz guys.
Good luck!!! ๐ซก
Media is too big
VIEW IN TELEGRAM
๐น Python Darslari | Object Oriented Dasturash. Klass va Obyekt โ
๐ค Sariq dev โ
@python_core_oop
๐ค Sariq dev โ
@python_core_oop
Media is too big
VIEW IN TELEGRAM
๐น Python Darslari | Object Oriented Dasturash. Obyektlar bilan ishlash โ
๐ค Sariq dev โ
@python_core_oop
๐ค Sariq dev โ
@python_core_oop
Media is too big
VIEW IN TELEGRAM
๐น Python Darslari | Object Oriented Dasturash. Vorislik va Polimorfizm โ
๐ค Sariq dev โ
@python_core_oop
๐ค Sariq dev โ
@python_core_oop
Media is too big
VIEW IN TELEGRAM
๐น Python Darslari | Object Oriented Dasturash. Inkapsulyatsiya. Klassga xos xususiyat va metodlar. โ
๐ค Sariq dev โ
@python_core_oop
๐ค Sariq dev โ
@python_core_oop
Media is too big
VIEW IN TELEGRAM
๐น Python Darslari | Object Oriented Dasturash. Dunder Metodlar. 1-qism โ
๐ค Sariq dev โ
@python_core_oop
๐ค Sariq dev โ
@python_core_oop
Media is too big
VIEW IN TELEGRAM
๐น Python Darslari | Object Oriented Dasturash. Dunder Metodlar. 2-qism โ
๐ค Sariq dev โ
@python_core_oop
๐ค Sariq dev โ
@python_core_oop
Forwarded from MohirDev.uz
Ramazon muborak!
Bu oy har safargidan-da manfaatli oโtsin. Ilmingiz ziyoda, ibodatlaringiz qabul boโlsin.
@mohirdev
Bu oy har safargidan-da manfaatli oโtsin. Ilmingiz ziyoda, ibodatlaringiz qabul boโlsin.
@mohirdev
๐2
Telegram bot haqida boshlangโich tushuncha
๐ Telegram bot nima?
Telegram bot โ bu Telegram ichida avtomatlashtirilgan vazifalarni bajara oladigan dastur. U foydalanuvchilarga turli xizmatlar koโrsatish, maโlumot yetkazish, buyurtmalarni qabul qilish, foydalanuvchi bilan muloqot qilish kabi ishlarni amalga oshiradi. Botlar odatda maโlum bir buyruqlar yoki tugmalar yordamida boshqariladi.
โ Telegram botning afzalliklari
โจ Tezkorlik โ Foydalanuvchilarga tez va qulay xizmat koโrsatish imkonini beradi.
๐ค Avtomatlashtirish โ Takroriy ishlarni bot bajarib, inson resurslarini tejaydi.
๐ฑ Platformadan mustaqillik โ Har qanday qurilmadan foydalanish mumkin (telefon, kompyuter).
๐ Integratsiya โ CRM, ERP, API va boshqa xizmatlar bilan bogโlanishi mumkin.
๐ Xavfsizlik โ Telegramโning kuchli shifrlash tizimi tufayli maโlumotlar xavfsiz saqlanadi.
๐ Telegram bot turlari
๐ข Axborot botlari โ Yangilik, ob-havo, valyuta kurslari va boshqa maโlumotlarni yetkazib beruvchi botlar.
๐ Savdo va toโlov botlari โ Internet-doโkonlar, xizmatlar buyurtma qilish va toโlovlarni amalga oshirish uchun ishlatiladigan botlar.
๐ฌ Chatbotlar โ Mijozlarga xizmat koโrsatish va savollarga javob berish uchun.
๐ฎ Koโngilochar botlar โ Oโyin botlari, mem botlari, musiqiy botlar va shunga oโxshash xizmatlar.
๐ Taโlim botlari โ Online kurslar, testlar va dars materiallarini taqdim etuvchi botlar.
๐ Avtomatlashtirish botlari โ Ish jarayonlarini yengillashtirish uchun qoโllaniladi (masalan, ish jadvali yoki eslatmalar botlari).
๐ Telegram bot yaratish uchun texnologiyalar
๐ป Dasturlash tillari:
๐ Python (aiogram, pyTelegramBotAPI)
๐ข JavaScript (telegraf.js, node-telegram-bot-api)
๐ PHP (MadelineProto, Telegram Bot API)
โ๏ธ Java (TelegramBots API)
๐ต C# (.NET Telegram.Bot)
๐น Go (tgbot)
๐ Maโlumotlar bazalari: PostgreSQL, MySQL, MongoDB, Firebase
โ๏ธ Xosting xizmatlari: Heroku, Railway, AWS, Render, Google Cloud
ยฉ๏ธ@python_core_oop
๐ Telegram bot nima?
Telegram bot โ bu Telegram ichida avtomatlashtirilgan vazifalarni bajara oladigan dastur. U foydalanuvchilarga turli xizmatlar koโrsatish, maโlumot yetkazish, buyurtmalarni qabul qilish, foydalanuvchi bilan muloqot qilish kabi ishlarni amalga oshiradi. Botlar odatda maโlum bir buyruqlar yoki tugmalar yordamida boshqariladi.
โ Telegram botning afzalliklari
โจ Tezkorlik โ Foydalanuvchilarga tez va qulay xizmat koโrsatish imkonini beradi.
๐ค Avtomatlashtirish โ Takroriy ishlarni bot bajarib, inson resurslarini tejaydi.
๐ฑ Platformadan mustaqillik โ Har qanday qurilmadan foydalanish mumkin (telefon, kompyuter).
๐ Integratsiya โ CRM, ERP, API va boshqa xizmatlar bilan bogโlanishi mumkin.
๐ Xavfsizlik โ Telegramโning kuchli shifrlash tizimi tufayli maโlumotlar xavfsiz saqlanadi.
๐ Telegram bot turlari
๐ข Axborot botlari โ Yangilik, ob-havo, valyuta kurslari va boshqa maโlumotlarni yetkazib beruvchi botlar.
๐ Savdo va toโlov botlari โ Internet-doโkonlar, xizmatlar buyurtma qilish va toโlovlarni amalga oshirish uchun ishlatiladigan botlar.
๐ฌ Chatbotlar โ Mijozlarga xizmat koโrsatish va savollarga javob berish uchun.
๐ฎ Koโngilochar botlar โ Oโyin botlari, mem botlari, musiqiy botlar va shunga oโxshash xizmatlar.
๐ Taโlim botlari โ Online kurslar, testlar va dars materiallarini taqdim etuvchi botlar.
๐ Avtomatlashtirish botlari โ Ish jarayonlarini yengillashtirish uchun qoโllaniladi (masalan, ish jadvali yoki eslatmalar botlari).
๐ Telegram bot yaratish uchun texnologiyalar
๐ป Dasturlash tillari:
๐ Python (aiogram, pyTelegramBotAPI)
๐ข JavaScript (telegraf.js, node-telegram-bot-api)
๐ PHP (MadelineProto, Telegram Bot API)
โ๏ธ Java (TelegramBots API)
๐ต C# (.NET Telegram.Bot)
๐น Go (tgbot)
๐ Maโlumotlar bazalari: PostgreSQL, MySQL, MongoDB, Firebase
โ๏ธ Xosting xizmatlari: Heroku, Railway, AWS, Render, Google Cloud
ยฉ๏ธ@python_core_oop
Python developer sifatida quyidagi kutubxonalar orqali telegram bot yaratsak bo'ladi:
๐ฅ Eng tavsiya qilinadigan kutubxona:
โ aiogram โ Asinxron (async) ishlaydi, tez va samarali. Katta botlar uchun eng yaxshi variant.
๐ Alternativ variantlar:
๐น pyTelegramBotAPI (telebot) โ Oddiy botlar uchun eng oson va tushunarli kutubxona.
๐น python-telegram-bot โ Rasmiy APIโga yaqin variant, async rejimni ham qoโllab-quvvatlaydi.
๐ Qaysi birini tanlash kerak?
Kichik botlar yoki boshlangโich daraja uchun: pyTelegramBotAPI
Katta botlar, inline tugmalar, keyboard va tezkor ishlash uchun: aiogram
Rasmiy APIโga yaqin ishlash va kengaytirilgan imkoniyatlar uchun: python-telegram-bot
ยฉ๏ธ@python_core_oop
๐ฅ Eng tavsiya qilinadigan kutubxona:
โ aiogram โ Asinxron (async) ishlaydi, tez va samarali. Katta botlar uchun eng yaxshi variant.
pip install aiogram
๐ Alternativ variantlar:
๐น pyTelegramBotAPI (telebot) โ Oddiy botlar uchun eng oson va tushunarli kutubxona.
pip install pyTelegramBotAPI
๐น python-telegram-bot โ Rasmiy APIโga yaqin variant, async rejimni ham qoโllab-quvvatlaydi.
pip install python-telegram-bot
๐ Qaysi birini tanlash kerak?
Kichik botlar yoki boshlangโich daraja uchun: pyTelegramBotAPI
Katta botlar, inline tugmalar, keyboard va tezkor ishlash uchun: aiogram
Rasmiy APIโga yaqin ishlash va kengaytirilgan imkoniyatlar uchun: python-telegram-bot
ยฉ๏ธ@python_core_oop