प्रसंग चर के संदर्भ के आधार पर भिन्न मान हो सकते हैं। थ्रेड-लोकल स्टोरेज के विपरीत जहां प्रत्येक निष्पादन थ्रेड में एक चर के लिए एक अलग मान हो सकता है, एक संदर्भ चर एक निष्पादन थ्रेड में कई संदर्भ हो सकता है। यह समवर्ती अतुल्यकालिक कार्यों में चर का ट्रैक रखने में उपयोगी है।
ContextVar वर्ग का उपयोग ContextVariables घोषित करने और उनके साथ काम करने के लिए किया जाता है।
import contextvars name = contextvars.ContextVar("name", default = 'Hello')
वैकल्पिक डिफ़ॉल्ट पैरामीटर ContextVar.get() द्वारा लौटाया जाता है जब वर्तमान संदर्भ में चर के लिए कोई मान नहीं मिलता है।
नाम: चर का नाम। यह केवल पढ़ने के लिए संपत्ति है।
निम्नलिखित विधियों को ContextVar वर्ग में परिभाषित किया गया है
get() | वर्तमान संदर्भ के लिए संदर्भ चर के लिए एक मान लौटाएं। यदि वर्तमान संदर्भ में चर के लिए कोई मान नहीं है, तो विधि −
|
set() | वर्तमान संदर्भ में संदर्भ चर के लिए एक नया मान सेट करने के लिए कॉल करें। |
reset() | संदर्भ चर को उस मान पर रीसेट करें जो ContextVar.set() से पहले था जिसने टोकन का उपयोग किया था। |
संदर्भ वर्ग में संदर्भ वर्ग मॉड्यूल उनके मूल्यों के लिए संदर्भ वार का मानचित्रण है।
संदर्भ (): एक खाली संदर्भ बनाता है जिसमें कोई मूल्य नहीं है।
वर्तमान संदर्भ की एक प्रति प्राप्त करने के लिए copy_context() फ़ंक्शन का उपयोग करें।
रन (कॉल करने योग्य, * args, **kwargs) विधि कॉल करने योग्य (* args, **kwargs) कोड को संदर्भ ऑब्जेक्ट में निष्पादित करती है, रन विधि को कॉल किया जाता है और निष्पादन का परिणाम देता है। कॉल करने योग्य किसी भी संदर्भ चर में कोई भी परिवर्तन, संदर्भ वस्तु में समाहित होगा। जब एक से अधिक ओएस थ्रेड से एक ही संदर्भ ऑब्जेक्ट पर कॉल किया जाता है, या जब पुनरावर्ती रूप से कॉल किया जाता है, तो यह विधि RuntimeError उठाती है।
प्रतिलिपि () | संदर्भ वस्तु की एक उथली प्रति देता है। |
context[var] | वर ContextVar वेरिएबल का मान लौटाता है। यदि संदर्भ वस्तु में चर सेट नहीं है, तो एक कुंजी त्रुटि उत्पन्न होती है। |
get() | संदर्भ var के लिए मान लौटाता है यदि इसका संदर्भ वस्तु में मान है। अन्यथा, यह डिफ़ॉल्ट पर वापस आ जाता है। यदि डिफ़ॉल्ट नहीं दिया गया है, तो कोई नहीं लौटाएं। |
iter() | संदर्भ ऑब्जेक्ट में संग्रहीत चर पर एक पुनरावर्तक देता है। |
len() | संदर्भ वस्तु में निर्धारित चरों की संख्या देता है। |
keys() | संदर्भ वस्तु में सभी चरों की सूची देता है। |
values() | संदर्भ वस्तु में सभी चर के मानों की सूची देता है। |
items() | संदर्भ वस्तु में सभी चर और उनके मूल्यों वाले 2-टुपल्स की सूची देता है। |