क्वाइन एक प्रोग्राम है, जो कोई इनपुट नहीं लेता, लेकिन यह आउटपुट उत्पन्न करता है। यह अपना स्वयं का सोर्स कोड दिखाएगा। इसके अतिरिक्त, क्वाइन की कुछ शर्तें हैं। हम प्रोग्राम के अंदर सोर्स कोड फ़ाइल नहीं खोल सकते।
उदाहरण कोड
a='a=%r;print (a%%a)';print (a%a)
आउटपुट
a='a=%r;print (a%%a)';print (a%a)
यह क्वाइन कैसे काम करता है?
यहाँ एक साधारण स्ट्रिंग फॉर्मेटिंग काम कर रही है। हम एक वेरिएबल 'a' परिभाषित कर रहे हैं, और a के अंदर, हम 'a=%r;print (a%%a)' स्टोर कर रहे हैं। फिर हम a का मान प्रिंट कर रहे हैं, और %r को a के मान से प्रतिस्थापित भी कर रहे हैं। इस प्रकार क्वाइन काम करता है।
हम फ़ाइल खोलकर वही कार्य कर सकते हैं जैसे यह।
print(open(__file__).read())
लेकिन इस मामले में हम क्वाइन के नियम का उल्लंघन कर रहे हैं। हम क्वाइन में फ़ाइल नहीं खोल सकते।