Python میں اعداد، متن، مجموعہ اور بہت کچھ کے لیے بنی ہوئی اقسام کا ایک بھرپور سیٹ ہے۔ انہیں جاننا — اور کون سی mutable بمقابلہ immutable ہیں — بنیادی ہے۔
عددی اقسام
x =
y =
z = +
b =
نوٹ: Python int میں منحصر درستگی ہے — یہ کبھی overflow نہیں ہوتا (C/Java میں fixed-size ints کے برعکس); 2 ** 1000 بس کام کرتا ہے۔
s = "hello" # str — Unicode text (immutable)
data = b"bytes" # bytes — raw binary (immutable)
lst = [1, 2, 3] # list — ordered, MUTABLE, allows duplicates
tup = (1, 2, 3) # tuple — ordered, IMMUTABLE
d = {"a": 1, "b": 2} # dict — key→value, mutable, insertion-ordered
s = {1, 2, 3} # set — unordered, unique elements, mutable
fs = frozenset({1, 2}) # frozenset — immutable set
result = None # NoneType — represents "no value" (like null)
if result is None: # always compare to None with `is`, not ==
...
type(x) # <class 'int'>
isinstance(x, int) # True — the preferred check (handles subclasses)
Immutable: int, float, bool, str, tuple, frozenset, bytes, None
Mutable: list, dict, set, bytearray
یہ فرق بہت اہم ہے — immutable اشیاء dict کی کلیدیں ہو سکتی ہیں اور شیئر کرنے کے لیے محفوظ ہیں; mutable والی چیزیں اگر alias دی جائیں تو غیر متوقع طریقے سے تبدیل ہو سکتی ہیں۔
بنی ہوئی اقسام تمام Python کوڈ کی لغت ہیں۔
ہر قسم کے مقصد کو جاننا (ترتیب شدہ ترتیبوں کے لیے list، کلیدی-قدر کے لیے dict، منفردیت کے لیے set، مقررہ ریکارڈ کے لیے tuple)، منحصر-درستگی والے integers، اور خاص طور پر mutable-vs-immutable تقسیم (جو dict کلیدیں، aliasing bugs، اور جو کچھ محفوظ طریقے سے شیئر کیا جا سکتا ہے اس کو کنٹرول کرتا ہے) بنیادی ہے۔
کام کے لیے صحیح قسم منتخب کرنا — اور اس کی mutability کو سمجھنا — Python کی ایک بنیادی صلاحیت ہے جو پورے پروگرام میں صحیح پن اور کارکردگی کو متاثر کرتی ہے۔