🔹 1-BO‘LIM: Python asoslari – savollar va javoblar
1. @staticmethod, @classmethod, @property farqlari?
@staticmethod– klassga bog‘liq emas, faqat ichki utility vazifasini bajaradi.@classmethod–clsorqali klassga kirish huquqini beradi (masalan, alternative constructors).@property– attribute singari chaqiriladigan method yaratadi (get,set,delbilan birga ishlatiladi).
class User:
def __init__(self, name):
self._name = name
@staticmethod
def greet():
return "Hello!"
@classmethod
def from_dict(cls, data):
return cls(data["name"])
@property
def name(self):
return self._name
2. Python’da GIL nima?
- GIL (Global Interpreter Lock) – CPython’da bir vaqtning o‘zida faqat bitta thread bajarilishini kafolatlaydi.
- Bu CPU-bound operatsiyalar uchun to‘siq, lekin IO-bound (masalan, tarmoq yoki fayl) vazifalarda async/multithreading yaxshi ishlaydi.
3. Python’da __slots__ nima?
__slots__klass attributlarini oldindan belgilash orqali memory usage’ni kamaytiradi.- Default bo‘lgan
__dict__o‘chiriladi → kam RAM, tezroq access.
class User:
__slots__ = ["id", "name"]
4. Generatorlar va yield?
- Generator funksiya
yieldorqali qiymat qaytaradi, lekin execution pause bo‘ladi. - Bu memoryda butun ro‘yxatni saqlamasdan, lazy evaluation qiladi.
def count_up_to(n):
i = 0
while i < n:
yield i
i += 1
5. Python’dagi memory management qanday ishlaydi?
- Reference counting + cyclic garbage collector.
gcmoduli orqali chuqur nazorat mumkin.del,weakref, yoki kontekst managerlar orqali resurslarni boshqarish.
6. Mutable vs Immutable turlar?
- Immutable:
int,str,tuple - Mutable:
list,dict,set - Tuple ichida mutable element bo‘lsa, tuple “shunchaki” immutable bo‘ladi, ichidagilar emas.
7. Typing: Union, Optional, TypedDict misollar?
from typing import Union, Optional, TypedDict
def process(value: Union[int, str]):
...
def get_name(user: Optional[dict]):
...
class UserDict(TypedDict):
id: int
name: str
8. Python’da context manager (with) qanday ishlaydi?
__enter__va__exit__methodlari orqali avtomatik ochish/yopish ishlari.- Fayl, socket, lock management uchun juda foydali.
with open("file.txt") as f:
data = f.read()
9. Python’da dataclass nima va qachon kerak?
@dataclassklasslarni tezroq yozish uchun →__init__,__repr__,__eq__avtomatik.- Faqat data saqlovchi obyektlar uchun ideal.
from dataclasses import dataclass
@dataclass
class User:
id: int
name: str
10. *args, **kwargs farqlari va ishlatish holatlari?
*args: tuple sifatida ko‘p positional argumentlarni oladi**kwargs: dict ko‘rinishida ko‘p nomli argumentlarni oladi
def example(*args, **kwargs):
print(args, kwargs)