Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में लाइन-ओरिएंटेड कमांड दुभाषियों के लिए समर्थन

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
->
>>>

  1. शुरुआती के लिए पायथन में कक्षाएं और वस्तुएं

    आज हम बात करने जा रहे हैं क्लासेज के बारे में। नहीं, हमारा मतलब स्कूल की कक्षाओं से नहीं है। प्रोग्रामिंग में, कक्षाओं की अपनी परिभाषा होती है। एक वर्ग एक वस्तु के लिए एक कोडर द्वारा बनाया गया एक खाका है। यह उस डेटा को परिभाषित करता है जिसे किसी ऑब्जेक्ट में संग्रहीत किया जा सकता है और उस विशेष ऑ

  1. जटिल संख्या वस्तुओं के लिए कक्षा को परिभाषित करने के लिए पायथन कार्यक्रम

    मान लीजिए कि हम निम्नलिखित कार्यों के साथ एक जटिल संख्या वर्ग को परिभाषित करके जटिल संख्या कार्य करना चाहते हैं - दो सम्मिश्र संख्याओं को जोड़ने के लिए जोड़ें () sub() दो सम्मिश्र संख्याओं को घटाने के लिए mul() दो सम्मिश्र संख्याओं को गुणा करने के लिए div() दो सम्मिश्र संख्याओं को विभाजित करने के ल

  1. पायथन में टिंकर बटन के लिए कमांड विधि बदलें

    बटन विजेट का महत्व यह है कि इसका उपयोग घटनाओं को संभालने के लिए एप्लिकेशन में कुछ संचालन करने के लिए किया जाता है। ऐसी घटनाओं को संभालने के लिए, हम आम तौर पर एक विधि को परिभाषित करते हैं जिसमें कुछ निश्चित संचालन होते हैं। मान लें कि हम ईवेंट . को बदलना चाहते हैं बटन प्रारंभ करने के बाद विधि। हम क