प्रकार एनोटेशन की मूल बातें
चर, फ़ंक्शन पैरामीटर और रिटर्न प्रकारों में एनोटेशन जोड़ें।
प्रकार एनोटेशन की मूल बातें, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
टाइप एनोटेशन क्या हैं
टाइप एनोटेशन ऐसे संकेत हैं जो चर, पैरामीटर और रिटर्न मान के अपेक्षित प्रकार की घोषणा करते हैं। रनटाइम पर इन्हें लागू नहीं किया जाता—इन्हें mypy जैसे टाइप-जाँचकर्ता पढ़ते हैं।
def greet(name: str) -> str:
return f"Hello, {name}"
result: str = greet("Alice")
print(result)चर के एनोटेशन
मॉड्यूल-स्तरीय, क्लास-स्तरीय या स्थानीय चर में कोलन के बाद प्रकार लिखकर उनका एनोटेशन करें।
count: int = 0
pi: float = 3.14159
name: str = "Python"
flag: bool = True
# Annotation without assignment (declaration only)
future_value: intफ़ंक्शन पैरामीटर के एनोटेशन
फ़ंक्शन हस्ताक्षर में प्रत्येक पैरामीटर का एनोटेशन करें। रिटर्न प्रकार का एनोटेशन करने के लिए -> type का उपयोग करें।
def add(a: int, b: int) -> int:
return a + b
def repeat(text: str, times: int = 1) -> str:
return text * times
def no_return() -> None:
print("side effect only")बिल्ट-इन संग्रह प्रकार (पाइथन 3.9+)
पाइथन 3.9+ से, जेनेरिक के रूप में छोटे अक्षरों वाले बिल्ट-इन प्रकारों का सीधे उपयोग करें: list[int], dict[str, int], tuple[int, ...]।
def total(numbers: list[int]) -> int:
return sum(numbers)
def config() -> dict[str, str]:
return {"host": "localhost", "port": "8080"}
def coords() -> tuple[float, float]:
return (1.0, 2.0)Optional और Union
X | None (पाइथन 3.10+) या Optional[X] का अर्थ है कि मान X या None हो सकता है। X | Y का अर्थ है X या Y।
from typing import Optional
def find(items: list[int], target: int) -> int | None:
return next((x for x in items if x == target), None)
# Older style:
# def find(...) -> Optional[int]:Union प्रकार
int | str (पाइथन 3.10+) या Union[int, str] ऐसे मान का एनोटेशन करता है जो कई प्रकारों में से किसी एक का हो सकता है।
from typing import Union
def process(value: int | str) -> str:
return str(value)
# Older style:
# def process(value: Union[int, str]) -> str:टाइप एलियस
दोबारा उपयोग किए जा सकने वाले एलियस बनाने और पठनीयता सुधारने के लिए किसी प्रकार के व्यंजक को एक नाम दें।
from typing import TypeAlias
Vector: TypeAlias = list[float]
Matrix: TypeAlias = list[Vector]
def dot(a: Vector, b: Vector) -> float:
return sum(x * y for x, y in zip(a, b))Callable एनोटेशन
आर्ग्युमेंट के रूप में पास किए गए फ़ंक्शन का एनोटेशन करने के लिए Callable[[arg_types], return_type] का उपयोग करें।
from typing import Callable
def apply(func: Callable[[int, int], int], x: int, y: int) -> int:
return func(x, y)
result = apply(lambda a, b: a + b, 3, 4)
print(result) # 7*args और **kwargs का एनोटेशन
*args का एनोटेशन एलिमेंट प्रकार से करें, टपल प्रकार से नहीं, और **kwargs का एनोटेशन मान के प्रकार से करें।
def log(*messages: str, level: str = "INFO") -> None:
for msg in messages:
print(f"[{level}] {msg}")
def configure(**options: int) -> None:
for key, val in options.items():
print(f"{key}: {val}")from __future__ import annotations
एनोटेशन का स्थगित मूल्यांकन सक्षम करने के लिए इस इम्पोर्ट को फ़ाइल के शीर्ष पर जोड़ें। इससे फ़ॉरवर्ड रेफ़रेंस को उद्धरण-चिह्नों के बिना लिखना संभव होता है।
from __future__ import annotations
class Node:
def __init__(self, value: int, next: Node | None = None):
self.value = value
self.next = next # forward ref to Node works hereTYPE_CHECKING गार्ड
टाइप-जाँच के समय ही प्रकारों को इम्पोर्ट करें, रनटाइम पर नहीं, ताकि चक्रीय इम्पोर्ट या भारी इम्पोर्ट से बचा जा सके।
from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from mymodule import HeavyClass
def process(obj: HeavyClass) -> None:
... # HeavyClass not imported at runtimeत्वरित जाँच
कौन-सा एनोटेशन सिंटैक्स फ़ंक्शन को कुछ भी रिटर्न न करने वाला चिह्नित करता है?
पुनरावलोकन
चरों का एनोटेशन name: Type से, पैरामीटर का param: Type से और रिटर्न का -> Type से करें। संग्रहों के लिए list[T] और dict[K,V] (पाइथन 3.9+), वैकल्पिक मानों के लिए X | None (3.10+), और फ़ॉरवर्ड रेफ़रेंस के लिए from __future__ import annotations का उपयोग करें।
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 76
- पाठ
- 320
अक्सर पूछे जाने वाले प्रश्न
क्या “प्रकार एनोटेशन की मूल बातें” पाठ निःशुल्क है?
हाँ—“प्रकार एनोटेशन की मूल बातें” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“प्रकार एनोटेशन की मूल बातें” में मैं क्या सीखूँगा?
चर, फ़ंक्शन पैरामीटर और रिटर्न प्रकारों में एनोटेशन जोड़ें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“प्रकार एनोटेशन की मूल बातें” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- प्रकार एनोटेशन की मूल बातें
- जटिल प्रकार: List, Dict, Optional, Union
- TypeVar, जेनेरिक क्लास और Protocol
- mypy चलाना और प्रकार त्रुटियाँ ठीक करना