विषय पर बढ़ें

00 · पाठ्यक्रम के लिए आवश्यक Python तंत्र

पाठ्यक्रम के लिए आवश्यक Python तंत्र

operator dispatch, decorator और dataclass से समझें कि expression library method तक कैसे पहुँचता है।

इस अध्याय से पहले

आप फलन, class, condition और सरल type annotation पढ़ सकते हैं।

अध्याय के बाद आप
  • “पाठ्यक्रम के लिए आवश्यक Python तंत्र” की गणितीय परिभाषा अपने शब्दों में समझाना
  • Python डेटा में उसका निरूपण बताना
  • वास्तविक कोड से छोटा execution अनुमानित करना
गणितीय परिभाषा

Python में `a + b` और `a == b`, `__add__` और `__eq__` माँगते हैं। decorator परिभाषा के समय function object लेकर उसे बदलता है।

डेटा निरूपण

frozen dataclass अपरिवर्तनीय मान रखती है। `@log` method भीतर result और delayed message लौटाता है; wrapper केवल result दिखाता है।

Python कार्यान्वयन

`+` → `__add__`; `==` → `__eq__`; `@log` → `inner`

साथ पढ़ने के लिए कार्यान्वयन और test

peano/utils.py · tests/test_utils.py

गणितीय परिभाषा

गणितीय परिभाषा

Python में a + b और a == b, __add__ और __eq__ माँगते हैं। decorator परिभाषा के समय function object लेकर उसे बदलता है।

डेटा निरूपण

डेटा निरूपण

frozen dataclass अपरिवर्तनीय मान रखती है। @log method भीतर result और delayed message लौटाता है; wrapper केवल result दिखाता है।

Python कार्यान्वयन

Python कार्यान्वयन

inner मूल method चलाकर (result, message) अलग करता है, जरूरत पर log लिखता है और result लौटाता है; @wraps metadata बचाता है।

पाठ्यक्रम में उपयोग किया गया सटीक संबंध:

`+` → `__add__`; `==` → `__eq__`; `@log` → `inner`

Execution trace

Execution trace

wrapper को message मिलने से पहले method पूरा होता है, इसलिए भीतर के recursive call का log पहले आता है।

चलाने से पहले अनुमान

बताएँ कि `structural_str()` और `+` कौन-सा कोड चलाएँगे और दो अपेक्षित पंक्तियाँ लिखें।

प्रयोग · पाठ्यक्रम के लिए आवश्यक Python तंत्र अभी नहीं चला
⌘ / Ctrl + Enter
Output
पहले अनुमान लिखें, फिर चलाएँ।

Test से जाँच

Test से जाँच

test result, public signature और message के delayed evaluation की रक्षा करते हैं।

दायरा और सीमाएँ

दायरा और सीमाएँ

मूल syntax दोबारा नहीं पढ़ाया गया; library समझने की जरूरी metaprogramming ही समझाई गई है।

“पाठ्यक्रम के लिए आवश्यक Python तंत्र” के कार्यान्वयन का सही वर्णन कौन-सा है?