Python Academy · पाठ

जटिल प्रकार: List, Dict, Optional, Union

typing मॉड्यूल के जेनेरिक और Optional/Union का सही उपयोग करें।

पाठ 2, कुल 4 में से13 चरण

जटिल प्रकार: List, Dict, Optional, Union, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

typing मॉड्यूल का अवलोकन

पाइथन 3.9 से पहले, List, Dict और Tuple जैसे जेनेरिक प्रकार typing से आते थे। 3.9 से आप बिल्ट-इन प्रकारों का सीधे उपयोग कर सकते हैं।

from typing import List, Dict, Tuple, Optional, Union

# Python 3.9+: use list[int], dict[str,int] directly
# Python 3.8-: use typing.List[int], typing.Dict[str,int]

List और Sequence

परिवर्तनीय अनुक्रमों के लिए list[T] और किसी भी क्रमबद्ध अनुक्रम (लिस्ट, टपल, स्ट्रिंग) को स्वीकार करने के लिए Sequence[T] का उपयोग करें।

from typing import Sequence

def total(nums: list[int]) -> int:
    return sum(nums)

def first(items: Sequence[str]) -> str:
    return items[0]   # works with list, tuple, str

Dict और Mapping

परिवर्तनीय डिक्ट के लिए dict[K,V] और केवल-पठन योग्य डिक्ट-जैसी वस्तुओं के लिए Mapping[K,V] का उपयोग करें।

from typing import Mapping

def lookup(data: Mapping[str, int], key: str) -> int | None:
    return data.get(key)

result = lookup({"a": 1, "b": 2}, "a")
print(result)   # 1

Tuple एनोटेशन

निश्चित लंबाई: tuple[int, str, float]। परिवर्तनीय लंबाई: tuple[int, ...]।

def point() -> tuple[float, float]:
    return (1.0, 2.0)

def first_n(n: int) -> tuple[int, ...]:
    return tuple(range(n))

# Named tuple with types:
from typing import NamedTuple
class Point(NamedTuple):
    x: float
    y: float

Optional[T]

Optional[T], T | None का संक्षिप्त रूप है। जब कोई पैरामीटर अनुपस्थित हो सकता है, तो हमेशा यही सही विकल्प है।

from typing import Optional

def find_user(user_id: int) -> Optional[dict[str, str]]:
    db: dict[int, dict[str, str]] = {
        1: {"name": "Alice"}
    }
    return db.get(user_id)

Union प्रकार

ऐसे मानों के लिए, जो कई प्रकारों में से किसी एक के हो सकते हैं, Union[X, Y] या X | Y (3.10+) का उपयोग करें।

from typing import Union

def stringify(value: Union[int, float, str]) -> str:
    return str(value)

# Python 3.10+:
def stringify2(value: int | float | str) -> str:
    return str(value)

Literal प्रकार

Literal["a","b","c"] किसी मान को लिटरल के एक विशिष्ट समूह तक सीमित करता है।

from typing import Literal

Mode = Literal["read", "write", "append"]

def open_file(path: str, mode: Mode) -> None:
    with open(path, mode):
        pass

open_file("data.txt", "read")    # ok
# open_file("data.txt", "exec")  # mypy error

TypedDict

TypedDict उन डिक्ट के आकार का एनोटेशन करता है जिनमें प्रत्येक कुंजी किसी विशिष्ट प्रकार के मान से जुड़ी होती है।

from typing import TypedDict

class User(TypedDict):
    name: str
    age: int
    email: str | None

def greet(user: User) -> str:
    return f"Hello, {user['name']}"

alice: User = {"name": "Alice", "age": 30, "email": None}

Set और FrozenSet

सेट का एनोटेशन set[T] से और फ़्रोजन सेट का frozenset[T] से करें।

def unique(items: list[int]) -> set[int]:
    return set(items)

def allowed_methods() -> frozenset[str]:
    return frozenset({"GET", "POST", "DELETE"})

Iterable और Iterator

किसी भी ऐसी वस्तु के लिए जिस पर लूप चलाया जा सकता है, Iterable[T] और __next__ वाली वस्तुओं के लिए Iterator[T] का उपयोग करें।

from typing import Iterable, Iterator

def evens(numbers: Iterable[int]) -> Iterator[int]:
    return (n for n in numbers if n % 2 == 0)

for n in evens([1, 2, 3, 4, 5]):
    print(n)   # 2 4

Any और NoReturn

Any किसी मान के लिए टाइप-जाँच से बाहर निकलता है। NoReturn उन फ़ंक्शन को चिह्नित करता है जो कभी रिटर्न नहीं करते, अर्थात वे हमेशा त्रुटि उत्पन्न करते हैं या अनंत लूप में चलते हैं।

from typing import Any, NoReturn

def accept_all(x: Any) -> None:
    print(x)

def crash(msg: str) -> NoReturn:
    raise RuntimeError(msg)   # never returns normally

त्वरित जाँच

Optional[str] का क्या अर्थ है?

पुनरावलोकन

संग्रहों के लिए list[T], dict[K,V] और tuple[T,...] का उपयोग करें। Optional[T] = T | None। कई प्रकारों के लिए Union[X,Y] या X|Y। विशिष्ट मानों के लिए Literal, टाइप किए गए डिक्ट के आकार के लिए TypedDict, और टाइप-जाँच से बाहर निकलने के लिए Any।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
76
पाठ
320

अक्सर पूछे जाने वाले प्रश्न

क्या “जटिल प्रकार: List, Dict, Optional, Union” पाठ निःशुल्क है?

हाँ—“जटिल प्रकार: List, Dict, Optional, Union” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“जटिल प्रकार: List, Dict, Optional, Union” में मैं क्या सीखूँगा?

typing मॉड्यूल के जेनेरिक और Optional/Union का सही उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“जटिल प्रकार: List, Dict, Optional, Union” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. प्रकार एनोटेशन की मूल बातें
  2. जटिल प्रकार: List, Dict, Optional, Union
  3. TypeVar, जेनेरिक क्लास और Protocol
  4. mypy चलाना और प्रकार त्रुटियाँ ठीक करना
← Python Academy पर वापस जाएँ