Isoqjanov Ilyos | Python
512 subscribers
34 photos
13 videos
2 files
60 links
🐍 Python bo'yicha o'zbek tilidagi sifatli materiallarni ko'paytirishda o'zing madadkor bo'lgin Allohim.

Shaxsiy blogim:
https://t.me/coldboot_blog

Admin:
@JurabekAbdusattarov,
@pythonwithcoldboot
Download Telegram
🐍 Pythonda funksiya ichidan funksiya qaytarish mumkinmi? 🤯

Quyidagi kodga qarang:
def create(m, n):
if m == 'Max':
return lambda v: v < n
elif m == 'Min':
return lambda v: v > n

checker = create('Max', 31)

print(checker(15)) # ?
print(checker(32)) # ?


🤔 Nima chiqadi?

Bir o‘ylab ko‘ring... 👇

Javob:
True
False


🧠 Nima bo‘lyapti o‘zi?

create() funksiyasi oddiy qiymat emas, boshqa funksiya (lambda) qaytaryapti.
checker = lambda v: v < 31


💡 Eng qiziq joyi

n = 31 yo‘qolib ketmaydi! 😳
U lambda ichida saqlanib qoladi

👉 Bu — closure deyiladi

🔥 Nega bu kuchli?

Siz dinamik funksiyalar yasay olasiz:
check10 = create('Max', 10)
check50 = create('Max', 50)

print(check10(20)) # False
print(check50(20)) # True


⚠️ E’tibor bering
max = create('Max', 31)

bu yaxshi emas (built-in max() ni bosib yuboradi)

yaxshisi:
max_checker = create('Max', 31)


🧩 Xulosa

• Funksiya ichidan funksiya qaytarish mumkin
• Ichki funksiya tashqi o‘zgaruvchini esda saqlaydi
• Bu mexanizm → closure
Juda foydali: filter, validator, dynamic logic
👍4🔥3👏21
🌍 FastAPI va ko‘p tilli dastur: Zarurati va imkoniyatlari

Siz FastAPI bilan backend qurayotganingizda ko‘p tilli dastur (i18n) haqida o‘ylash juda muhim. Nega?

1️⃣ Nima uchun ko‘p tilli qilish kerak?

🌐 Global auditoriya: Foydalanuvchilar bir nechta tilni biladi. Sizning API faqat bir til bilan javob qaytarsa, foydalanuvchi tajribasi buziladi.
🔒 Xabarlar va xatoliklar: Har bir error yoki success xabari foydalanuvchiga tushunarli bo‘lishi kerak.
⚡️ Professional standart: Ko‘p tilli API bugungi kunda standart hisoblanadi, ayniqsa React/Flutter frontend bilan ishlaganda.

2️⃣ FastAPI imkoniyatlari

🔹 Variant 1: gettext + .po/.mo fayllar
• Python standart kutubxonasi
• Tarjima fayllari (.po) orqali xabarlarni boshqarish
• .mo faylga kompilyatsiya qilib, tez ishlaydi
• Middleware orqali foydalanuvchi tilini aniqlash mumkin

🔹 Variant 2: Babel
• .po fayllarni yaratish va kompilyatsiya qilishni osonlashtiradi
• Sana, vaqt, valyuta formatlash imkoniyati

🔹 Variant 3: fastapi-babel yoki fastapi-i18n
• FastAPI uchun tayyor middleware
• Accept-Language header yoki query param orqali tilni aniqlaydi

🔹 Variant 4: JSON fayllar + frontend translation
• Backend faqat xabar ID yuboradi
• React / Vue / Flutter frontend foydalanuvchining tiliga mos tarjima qiladi
• Frontendda i18next bilan osongina ishlaydi
🔥2👏2😁2👍1
📡 Ngrok nima? Oddiy tushuntirish!

Agar siz dasturchi bo‘lsangiz yoki lokal server bilan ishlasangiz, ngrok sizga juda foydali bo‘lishi mumkin 👇

🔹 Ngrok — bu sizning kompyuteringizda (localhostda) ishlayotgan serverni internet orqali hammaga ochib beradigan xizmat.

💡 Ya’ni:
Sizda lokal ishlayotgan sayt yoki API bor (masalan: http://localhost:3000)
Ngrok uni quyidagicha public linkka aylantiradi:
👉 https://abc123.ngrok.io

🚀 Qachon kerak bo‘ladi?
• Telegram bot yozayotganda (webhook ulash uchun)
• Frontend va backendni test qilishda
• Boshqalarga o‘z loyihangizni ko‘rsatishda
• Mobil ilovalarni API bilan bog‘lashda

⚙️ Qanday ishlaydi?
• Ngrokni o‘rnatasiz
• Terminalda quyidagini yozasiz: ngrok http 3000
• Sizga public URL beradi — bo‘ldi!

🔐 Afzalliklari:
Oson sozlanadi
HTTPS avtomatik ishlaydi
Real-time trafikni ko‘rish mumkin

⚠️ Eslatma:
Free versiyada link har safar o‘zgaradi.

🔥 Agar siz backend yoki bot yozayotgan bo‘lsangiz — ngrok sizning eng yaqin yordamchingiz!
👍54🔥4👏1👌1🤝1