"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > घोषित होने पर बटन "कमांड" तुरंत निष्पादित क्यों होता है?

घोषित होने पर बटन "कमांड" तुरंत निष्पादित क्यों होता है?

2024-11-01 को प्रकाशित
ब्राउज़ करें:979

Why Does the Button \

बटन पैरामीटर "कमांड" घोषित होने पर क्यों निष्पादित किया जाता है?

पायथन में, बटन विजेट का "कमांड" पैरामीटर किसके लिए जिम्मेदार है कॉलबैक फ़ंक्शन को परिभाषित करना। हालाँकि, जब यह कॉलबैक फ़ंक्शन बटन घोषित करने पर तुरंत निष्पादित होता प्रतीत होता है, तो उपयोगकर्ता भ्रमित हो सकते हैं।

यह समस्या तब उत्पन्न होती है जब "कमांड" पैरामीटर को फ़ंक्शन ऑब्जेक्ट के बजाय फ़ंक्शन कॉल एक्सप्रेशन सौंपा जाता है। उदाहरण के लिए:

def Hello():
    print("Hi there!")

Button(frame, text="Hello", command=Hello())  # Function call expression

इस कोड में, एक्सप्रेशन 'हैलो()' तुरंत हैलो फ़ंक्शन को कॉल करता है, और अपना रिटर्न वैल्यू लौटाता है। परिणामस्वरूप, बटन बनने से पहले कॉलबैक फ़ंक्शन निष्पादित होता है, जिसके परिणामस्वरूप "हाय देयर!" संदेश कंसोल पर मुद्रित किया जा रहा है। = "हैलो", कमांड = हैलो) # फ़ंक्शन ऑब्जेक्ट

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

Button(frame, text="Hello", command=Hello)  # Function object

इस मामले में, लैम्ब्डा एक्सप्रेशन गुडनाइट ("मून") कॉल को लपेटता है, बटन क्लिक होने तक इसके निष्पादन में देरी करता है।

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729295836 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3