दिलचस्प पोस्ट
चयनित नोड, उसके लिंक, और उसके बच्चों को डी 3 बल निर्देशित ग्राफ़ में हाइलाइट करें स्ट्रिंग से गैर- utf8 वर्ण निकालें `: होवर` के साथ वेबकिट बग और कई आसन्न-सिब्बल चयनकर्ता एसिंक्रोनस कॉलबैक फ़ंक्शन से मान कैसे वापस लाया जाए? node.js के बाहर निकलने से पहले सफाई कार्रवाई कर रही है GitHub पर पूरी तरह से गिट रेपो और रिमोट से फ़ाइलें निकालें मैं निर्दिष्ट POST पैरामीटर के साथ एंड्रॉइड ब्राउज़र कैसे खोल सकता / सकती हूं? SQL डेटाबेस तालिकाओं में बहुरूपता? मैं जेएसपी / जावा में डबल से पूरे और आंशिक हिस्से कैसे प्राप्त करूं? डीजेन्गो – एक सूची को एक क्वेरी में वापस परिवर्तित करें सी # में कैनवास पर एक पंक्ति को कैसे सजीव करना है? नए तत्वों को जोड़ने के लिए क्या उप-वर्गीकृत किया जा सकता है? एंड्रॉइड एप्लीकेशन में वॉयस डिटेक्शन कोई समेकित नहीं के साथ पंक्तियों और स्तंभों को स्थानांतरित करें XSLT के माध्यम से XML में एक तिथि प्रारूप करें

किसी अन्य फ़ंक्शन से एक फ़ंक्शन के अंदर परिभाषित वैरिएबल कॉलिंग

अगर मेरे पास यह है:

def oneFunction(lists): category=random.choice(list(lists.keys())) word=random.choice(lists[category]) def anotherFunction(): for letter in word: #problem is here print("_",end=" ") 

मैंने पहले से ही lists परिभाषित किया lists , इसलिए एक oneFunction(lists) पूरी तरह से काम करता है

मेरी समस्या पंक्ति 6 ​​में word बुला रही word । मैंने पहले word बाहर एक ही word=random.choice(lists[category]) परिभाषा के साथ word को परिभाषित करने की कोशिश की है, लेकिन यह हमेशा एक ही word बना लेता word , भले ही मैं एक oneFunction(lists)

मैं सक्षम होना चाहता हूं, हर बार जब मैं पहला फ़ंक्शन कॉल करता हूं और दूसरा, एक अलग word

क्या मैं एक word oneFunction(lists) बाहर उस word को परिभाषित किए बिना कर सकता हूं?

वेब के समाधान से एकत्रित समाधान "किसी अन्य फ़ंक्शन से एक फ़ंक्शन के अंदर परिभाषित वैरिएबल कॉलिंग"

हां, आपको कक्षा में अपने कार्य को परिभाषित करने और सदस्य को शब्द बनाने के बारे में सोचना चाहिए। यह क्लीनर है

 class Spam: def oneFunction(self,lists): category=random.choice(list(lists.keys())) self.word=random.choice(lists[category]) def anotherFunction(self): for letter in self.word: print("_",end=" ") 

एक कक्षा बनाने के बाद आपको किसी ऑब्जेक्ट को इंस्टीटिएट करना होगा और सदस्य फ़ंक्शन का उपयोग करना होगा।

 s = Spam() s.oneFunction(lists) s.anotherFunction() 

एक और तरीका एक oneFunction को शब्द वापस करने के लिए होगा ताकि आप किसी अन्य oneFunction में शब्द के बजाय एक oneFunction उपयोग कर anotherFunction

 >>> def oneFunction(lists): category=random.choice(list(lists.keys())) return random.choice(lists[category]) >>> def anotherFunction(): for letter in oneFunction(lists): print("_",end=" ") 

और अंत में, आप एक और anotherFunction भी कर सकते हैं, एक पैरामीटर के रूप में शब्द को स्वीकार कर सकते हैं जिसे आप कॉल करने के परिणाम से पारित कर सकते हैं।

 >>> def anotherFunction(words): for letter in words: print("_",end=" ") >>> anotherFunction(oneFunction(lists)) 

अजगर में सब कुछ ऑब्जेक्ट के रूप में माना जाता है इसलिए फ़ंक्शंस भी ऑब्जेक्ट्स हैं। तो आप इस पद्धति का उपयोग भी कर सकते हैं।

 def fun1(): fun1.var = 100 print(fun1.var) def fun2(): print(fun1.var) fun1() fun2() print(fun1.var) 
 def anotherFunction(word): for letter in word: print("_", end=" ") def oneFunction(lists): category = random.choice(list(lists.keys())) word = random.choice(lists[category]) return anotherFunction(word) 

एक वैश्विक चर का उपयोग करना सबसे सरल विकल्प है फिर एक फ़ंक्शन बनाओ जो वर्तमान शब्द को प्राप्त करता है

 current_word = '' def oneFunction(lists): global current_word word=random.choice(lists[category]) current_word = word def anotherFunction(): for letter in get_word(): print("_",end=" ") def get_word(): return current_word 

इसका लाभ यह है कि शायद आपके फ़ंक्शन विभिन्न मॉड्यूल में हैं और चर को एक्सेस करने की आवश्यकता है।