2012-11-29 27 views
21

में किसी फ़ंक्शन में वैश्विक चर को परिभाषित करना संभव है? मैं पायथन में किसी फ़ंक्शन में वैश्विक चर घोषित कैसे करूं?क्या Python

यही है, ताकि इसे पहले घोषित नहीं किया जाना चाहिए लेकिन फ़ंक्शन के बाहर उपयोग किया जा सकता है।

+4

हां, यह संभव है। आपने क्या प्रयास किया है, क्या काम नहीं किया? –

+3

'वैश्विक my_var', आप कर चुके हैं। –

उत्तर

23

हाँ, लेकिन क्यों?

def a(): 
    globals()['something'] = 'bob' 
+7

बस, 'वैश्विक कुछ' करें, यह एक नया वैश्विक चर बना देगा यदि यह अस्तित्व में नहीं है। –

+2

निहितार्थ के बजाए स्पष्ट ... - यह इसे और अधिक "स्पष्ट" बनाता है क्योंकि यह एक बुरा विचार है ... –

+2

@ F3AR3DLEGEND * ग्लोबल्स my_var * फ़ंक्शन के बाहर उपयोग करने योग्य है, मैंने कोशिश की है। – MrROY

5
def function(arguments): 
    global var_name 
    var_name = value #must declare global prior to assigning value 

यह किसी भी समारोह में काम करेंगे, भले ही यह एक ही कार्यक्रम में है या नहीं।

def function(): 
    num = #code assigning some value to num 
    return num 

नोट::

यहाँ एक और तरीका यह उपयोग करने के लिए उपयोग करना return में निर्मित स्वचालित रूप से कार्यक्रम (या समारोह) बंद हो जाएगा, चाहे वह या पूरा नहीं हुआ है की परवाह किए बिना।

आप इस प्रकार का समारोह में इस का उपयोग कर सकते हैं:

if function()==5 #if num==5: 
    #other code 

यह आपको समारोह के बाहर चर का उपयोग करने की अनुमति होगी। जरूरी नहीं कि वैश्विक घोषित किया जाना चाहिए। एक वैश्विक चर का उपयोग किए बिना

import primes as p #my own example of a module I made 
p.prevPrimes(10) #generates primes up to n 
for i in p.primes_dict: 
    if p.primes_dict[i]: #dictionary contains only boolean values 
     print p.primes_dict[i] 

यह आपको एक और समारोह या कार्यक्रम में चर का उपयोग करने की अनुमति देगा:

इसके अलावा, एक चर एक समारोह से दूसरे में उपयोग करने के लिए है, तो आप कुछ इस तरह कर सकते हैं या return अंतर्निहित।

+1

यह वैश्विक नहीं है? मुझे लगता है कि यह मॉड्यूल-चौड़ा है। –

+0

आह हाँ, यह केवल मॉड्यूल-व्यापी है। हालांकि, 'रिटर्न' फ़ंक्शन का उपयोग करके इसे ठीक करना चाहिए। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^