वे हमेशा एक ही परिणाम देते हैं।
वास्तव में, not 'ham' in 'spam and eggs'एक "ऑपरेशन" में नहीं बल्कि "ऑपरेशन" में एक एकल "प्रदर्शन करने के लिए विशेष रूप से लापरवाह होना दिखाई देता है और फिर परिणाम का नकारात्मक:
>>> import dis
>>> def notin():
'ham' not in 'spam and eggs'
>>> dis.dis(notin)
2 0 LOAD_CONST 1 ('ham')
3 LOAD_CONST 2 ('spam and eggs')
6 COMPARE_OP 7 (not in)
9 POP_TOP
10 LOAD_CONST 0 (None)
13 RETURN_VALUE
>>> def not_in():
not 'ham' in 'spam and eggs'
>>> dis.dis(not_in)
2 0 LOAD_CONST 1 ('ham')
3 LOAD_CONST 2 ('spam and eggs')
6 COMPARE_OP 7 (not in)
9 POP_TOP
10 LOAD_CONST 0 (None)
13 RETURN_VALUE
>>> def not__in():
not ('ham' in 'spam and eggs')
>>> dis.dis(not__in)
2 0 LOAD_CONST 1 ('ham')
3 LOAD_CONST 2 ('spam and eggs')
6 COMPARE_OP 7 (not in)
9 POP_TOP
10 LOAD_CONST 0 (None)
13 RETURN_VALUE
>>> def noteq():
not 'ham' == 'spam and eggs'
>>> dis.dis(noteq)
2 0 LOAD_CONST 1 ('ham')
3 LOAD_CONST 2 ('spam and eggs')
6 COMPARE_OP 2 (==)
9 UNARY_NOT
10 POP_TOP
11 LOAD_CONST 0 (None)
14 RETURN_VALUE
मैंने पहले सोचा था कि वे हमेशा एक ही परिणाम देते हैं, लेकिन यह notअपने आप में एक कम पूर्ववर्ती तार्किक नकारात्मक संचालक है, जिसे a in bकिसी अन्य बूलियन अभिव्यक्ति के रूप में आसानी से लागू किया जा सकता है , जबकि not inसुविधा और स्पष्टता के लिए एक अलग ऑपरेटर था ।
ऊपर की बेचैनी का पता चल रहा था! ऐसा लगता है कि notस्पष्ट रूप से एक तार्किक निषेध ऑपरेटर है, लेकिन फॉर्म not a in bविशेष आवरण है, ताकि यह वास्तव में सामान्य ऑपरेटर का उपयोग नहीं कर रहा है। यह not a in bवस्तुतः एक ही अभिव्यक्ति के a not in bबजाय एक ही अभिव्यक्ति बनाता है , जिसके परिणामस्वरूप समान मूल्य होता है।
not x in xsडॉक्स में भी उल्लेख नहीं कर सकता ।