Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन कॉन्टेक्स्ट वेरिएबल्स


कॉन्टेक्स्ट वेरिएबल के मान इसके कॉन्टेक्स्ट के आधार पर अलग-अलग हो सकते हैं। थ्रेड-लोकल स्टोरेज के विपरीत जहां प्रत्येक निष्पादन थ्रेड में एक वेरिएबल के लिए अलग-अलग मान हो सकता है, एक कॉन्टेक्स्ट वेरिएबल एक निष्पादन थ्रेड में कई कॉन्टेक्स्ट हो सकते हैं। यह समवर्ती असिंक्रोनस कार्यों में वेरिएबल्स को ट्रैक रखने में उपयोगी है।

ContextVar क्लास का उपयोग कॉन्टेक्स्ट वेरिएबल्स को घोषित करने और उनके साथ काम करने के लिए किया जाता है।

import contextvars
name = contextvars.ContextVar("name", default='Hello')

वैकल्पिक डिफ़ॉल्ट पैरामीटर ContextVar.get() द्वारा लौटाया जाता है जब वर्तमान कॉन्टेक्स्ट में वेरिएबल के लिए कोई मान नहीं मिलता है।

name: वेरिएबल का नाम। यह एक रीड-ओनली प्रॉपर्टी है।

ContextVar क्लास में निम्नलिखित मेथड परिभाषित हैं

get() वर्तमान कॉन्टेक्स्ट के लिए कॉन्टेक्स्ट वेरिएबल का मान लौटाएं। यदि वर्तमान कॉन्टेक्स्ट में वेरिएबल के लिए कोई मान नहीं है, तो मेथड -
  • मेथड के डिफ़ॉल्ट आर्गुमेंट का मान लौटाएगा, यदि प्रदान किया गया है - या
  • कॉन्टेक्स्ट वेरिएबल के लिए डिफ़ॉल्ट मान लौटाएगा, यदि इसे एक के साथ बनाया गया था - या
  • LookupError उठाएगा।
set() वर्तमान कॉन्टेक्स्ट में कॉन्टेक्स्ट वेरिएबल के लिए एक नया मान सेट करने के लिए कॉल करें।
reset() कॉन्टेक्स्ट वेरिएबल को उस मान पर रीसेट करें जो ContextVar.set() से पहले था जिसने टोकन बनाया था।

contextvars मॉड्यूल में Context क्लास Context Vars का उनके मानों पर मैपिंग है।

Context(): बिना किसी मान के एक खाली कॉन्टेक्स्ट बनाता है।

वर्तमान कॉन्टेक्स्ट की एक प्रति प्राप्त करने के लिए copy_context() फंक्शन का उपयोग करें।

run(callable, *args, **kwargs) मेथड callable(*args, **kwargs) कोड को उस कॉन्टेक्स्ट ऑब्जेक्ट में निष्पादित करता है जिस पर run मेथड को बुलाया जाता है और निष्पादन का परिणाम लौटाता है। कॉल करने योग्य द्वारा किसी भी कॉन्टेक्स्ट वेरिएबल में किए गए परिवर्तन, कॉन्टेक्स्ट ऑब्जेक्ट में समाहित होंगे। जब एक ही कॉन्टेक्स्ट ऑब्जेक्ट पर एक से अधिक OS थ्रेड से बुलाया जाता है, या जब पुनरावर्ती रूप से बुलाया जाता है तो मेथड RuntimeError उठाता है।

copy() कॉन्टेक्स्ट ऑब्जेक्ट की एक शैलो कॉपी लौटाता है।
context[var] var ContextVar वेरिएबल का मान लौटाता है। यदि वेरिएबल कॉन्टेक्स्ट ऑब्जेक्ट में सेट नहीं है, तो Key Error उठाया जाता है।
get() यदि कॉन्टेक्स्ट ऑब्जेक्ट में मान है तो कॉन्टेक्स्ट वेर के लिए मान लौटाता है। अन्यथा, डिफ़ॉल्ट पर लौटाता है। यदि डिफ़ॉल्ट नहीं दिया गया है, तो None लौटाता है।
iter() कॉन्टेक्स्ट ऑब्जेक्ट में संग्रहीत वेरिएबल्स पर एक इटरेटर लौटाता है।
len() कॉन्टेक्स्ट ऑब्जेक्ट में सेट वेरिएबल्स की संख्या लौटाता है।
keys() कॉन्टेक्स्ट ऑब्जेक्ट में सभी वेरिएबल्स की सूची लौटाता है।
values() कॉन्टेक्स्ट ऑब्जेक्ट में सभी वेरिएबल्स के मानों की सूची लौटाता है।
items() कॉन्टेक्स्ट ऑब्जेक्ट में सभी वेरिएबल्स और उनके मानों को समाहित करने वाले 2-टपल्स की सूची लौटाता है।

  1. - Python में प्राइवेट वेरिएबल

    व्यावहारिक रूप से, Python में प्राइवेट मेंबर वेरिएबल जैसी कोई चीज़ नहीं है। हालांकि, शुरुआत में दो अंडरस्कोर (__) जोड़ने से एक वेरिएबल या मेथड प्राइवेट हो जाता है, यह कन्वेंशन अधिकांश Python कोड द्वारा उपयोग किया जाता है। आइए एक उदाहरण के माध्यम से इस अवधारणा को समझते हैं - privateVar1.py class m

  1. - पायथन में वेरिएबल नाम को स्ट्रिंग के रूप में कैसे प्राप्त करें?

    यह वास्तव में पायथन में कुछ ऐसा नहीं है जो आप करते हैं क्योंकि वेरिएबल्स वास्तव में ऑब्जेक्ट्स के लिए नाम मैपिंग हैं। पायथन में केवल वे ऑब्जेक्ट्स हैं जिनके कैनोनिकल नाम हैं वे हैं मॉड्यूल्स, फ़ंक्शन्स, और क्लासेस, और निश्चित रूप से इसकी कोई गारंटी नहीं है कि यह कैनोनिकल नाम फ़ंक्शन या क्लास परिभाषि

  1. - पावरशेल वेरिएबल में महारत: कुशल स्क्रिप्टिंग के लिए आपका गाइड

    कंप्यूटर साइंस (और कैज़ुअल कंप्यूटिंग) में, एक वेरिएबल मेमोरी में एक स्थान है जो बाद में उपयोग के लिए मनमाना जानकारी रखता है। दूसरे शब्दों में, यह आपके लिए डेटा डालने और निकालने के लिए एक अस्थायी स्टोरेज कंटेनर है। बैश शेल में, वह डेटा एक शब्द (कंप्यूटर भाषा में एक स्ट्रिंग) या एक संख्या (एक इंटीजर)