cmd मॉड्यूल में केवल एक वर्ग होता है जिसे Cmd कहा जाता है। इसका उपयोग लाइन ओरिएंटेड कमांड लाइन दुभाषियों के लिए उपयोगकर्ता परिभाषित ढांचे के लिए बेस क्लास के रूप में किया जाता है।
सीएमडी
इस वर्ग या उसके उपवर्ग का एक ऑब्जेक्ट लाइन ओरिएंटेड दुभाषिया ढांचा प्रदान करता है। उपवर्ग द्वारा विरासत में मिली इस वर्ग की महत्वपूर्ण विधियाँ नीचे सूचीबद्ध हैं।
cmdloop()
यह विधि ऑब्जेक्ट को लूप में भेजती है, इनपुट स्वीकार करती है और कक्षा में उपयुक्त कमांड हैंडलर विधि को भेजती है।
जैसे ही लूप एक परिचयात्मक संदेश शुरू करता है (cmdloop() विधि को पैरामीटर के रूप में दें) एक डिफ़ॉल्ट (cmd) प्रॉम्प्ट के साथ प्रदर्शित होगा जिसे प्रॉम्प्ट विशेषता द्वारा अनुकूलित किया जा सकता है।
दुभाषिया वस्तु उपयोगकर्ता इनपुट को दो भागों में पहचानती है। 'do_' के साथ पहले भाग को कक्षा में विधि के रूप में माना जाता है और दूसरे भाग को विधि के पैरामीटर के रूप में माना जाता है। उदाहरण के लिए यदि उपयोगकर्ता 'हैलो पायथन' में प्रवेश करता है, तो दुभाषिया 'पायथन' को पैरामीटर के रूप में भेजने वाले वर्ग में do_hello() विधि को निष्पादित करने का प्रयास करता है। यदि उक्त विधि को परिभाषित किया गया है, तो इसे निष्पादित किया जाएगा, अन्यथा त्रुटि संदेश प्रदर्शित किया जाएगा।
Cmd के उपवर्ग को do_help () विधि विरासत में मिली है। उपयोगकर्ता का इनपुट जैसे 'हेल्प हैलो' हैलो() विधि में डॉकस्ट्रिंग लाएगा और इसे हेल्प टेक्स्ट के रूप में प्रदर्शित करेगा, या यदि मौजूद है, तो help_hello() विधि चलाई जाएगी।
निम्नलिखित उदाहरण लाइन ओरिएंटेड दुभाषिया ढांचे के अनुप्रयोग को दर्शाता है। कोड पहले cmd मॉड्यूल आयात करता है और Cmd वर्ग के एक उपवर्ग को परिभाषित करता है।
MathOps क्लास डॉकस्ट्रिंग टेक्स्ट के साथ ऐड, सब, मल और डिव मेथड्स (सभी प्रीफ़िक्स में do_ कैरेक्टर) को परिभाषित करता है।
MathOps क्लास का ऑब्जेक्ट घोषित किया जाता है और cmdloop () मेथड को कॉल करके लूप में भेजा जाता है। जब उपयोगकर्ता प्रकार प्रॉम्प्ट के सामने मदद करते हैं, तो सभी विधि नाम प्रदर्शित होते हैं। जब मदद के साथ किसी विधि का नाम टाइप किया जाता है, तो संबंधित विधि का डॉकस्ट्रिंग प्रदर्शित होता है। किसी भी विधि को कॉल करने के लिए, उसका नाम टाइप करें, आवश्यक तर्क और एंटर दबाएं। विधि का परिणाम प्रदर्शित किया जाएगा और लूप को रोकने के लिए ^D जारी होने तक प्रॉम्प्ट बार-बार वापस आएगा।
from cmd import Cmd class MathOps(Cmd): def do_add(self, args): '''add two numbers''' num=args.split() print ('addition:',int(num[0])+int(num[1])) def do_sub(self, args): '''subtract two numbers''' num=args.split() print ('subtraction:',int(num[0])-int(num[1])) def do_mul(self, args): '''multiply two numbers''' num=args.split() print ('multiplication:',int(num[0])*int(num[1])) def do_div(self, args): '''perform division''' num=args.split() print ('division:',int(num[0])/int(num[1])) def do_EOF(self, args): return True op=MathOps() op.prompt= "->" op.cmdloop("loop starts. Press ^D to exit")
उपरोक्त स्क्रिप्ट का नमूना रन नीचे दिखाया गया है
loop starts. Press ^D to exit ->help Documented commands (type help ): ======================================== add div help mul sub Undocumented commands: ====================== EOF ->help add add two numbers ->add 5 7 addition: 12 ->div 10 5 division: 2.0 -> >>>