सटीक उत्तर: नहीं। पायथन में एक भी अंतर्निहित ऑपरेटर नहीं है opजो अनुवाद कर सकता x = x or yहै x op y।
लेकिन, यह लगभग करता है। बिटवाइज़ या-बराबर ऑपरेटर ( |=) ऊपर वर्णित कार्य करेगा, अगर दोनों ऑपरेंड को गुहा के साथ बूलियन के रूप में माना जा रहा है। (क्या चेतावनी है? उत्तर पाठ्यक्रम से नीचे है।)
सबसे पहले, कार्यक्षमता का मूल प्रदर्शन:
x = True
x
Out[141]: True
x |= True
x
Out[142]: True
x |= False
x
Out[143]: True
x &= False
x
Out[144]: False
x &= True
x
Out[145]: False
x |= False
x
Out[146]: False
x |= True
x
Out[147]: True
कारण यह है कि अजगर को कड़ाई से टाइप नहीं किया जाता है, और इस प्रकार भले ही मूल्यों को एक अभिव्यक्ति के रूप में बूलियन के रूप में माना जा रहा हो, अगर वे एक बिटवाइज ऑपरेटर को दिए गए शॉर्ट-सर्कुलेट नहीं होंगे। उदाहरण के लिए, मान लें कि हमारे पास एक बूलियन फ़ंक्शन था जो एक सूची को साफ करता है और Trueयदि तत्व हटाए गए थे तो रिटर्न देता है:
def my_clear_list(lst):
if not lst:
return False
else:
del lst[:]
return True
अब हम छोटे परिचालित व्यवहार को इस प्रकार देख सकते हैं:
x = True
lst = [1, 2, 3]
x = x or my_clear_list(lst)
print(x, lst)
Output: True [1, 2, 3]
हालांकि, orबिटवाइज़ या ( |) में स्विच करने से शॉर्ट-सर्किट को हटा दिया जाता है, इसलिए फ़ंक्शन my_clear_listनिष्पादित होता है।
x = True
lst = [1, 2, 3]
x = x | my_clear_list(lst)
print(x, lst)
Output: True []
ऊपर, x = x | my_clear_list(lst)के बराबर है x |= my_clear_list(lst)।