मुझे यकीन नहीं है कि आप क्या करने की कोशिश कर रहे हैं। अजगर एक बहुत ही गतिशील भाषा है; जब तक आप वास्तव में उन्हें असाइन करने या उनका उपयोग करने जा रहे हैं, तब तक आपको आमतौर पर चर घोषित करने की आवश्यकता नहीं होती है। मुझे लगता है कि तुम क्या करना चाहते हो बस
foo = None
जो None
वैरिएबल को मान देगा foo
।
संपादित करें: जो आप वास्तव में करना चाहते हैं वह सिर्फ यही है:
#note how I don't do *anything* with value here
#we can just start using it right inside the loop
for index in sequence:
if conditionMet:
value = index
break
try:
doSomething(value)
except NameError:
print "Didn't find anything"
यह है कि वास्तव में सही शैली इस तरह के एक छोटे से कोड उदाहरण से उपयोग करने के लिए बताने के लिए थोड़ा मुश्किल है, लेकिन यह है एक अधिक "pythonic" कार्यस्थल के रास्ते में।
EDIT: नीचे JFS द्वारा टिप्पणी की गई है (कोड दिखाने के लिए यहां पोस्ट किया गया है)
ओपी के प्रश्न से संबंधित नहीं है, लेकिन उपरोक्त कोड को फिर से लिखा जा सकता है:
for item in sequence:
if some_condition(item):
found = True
break
else: # no break or len(sequence) == 0
found = False
if found:
do_something(item)
नोट: यदि some_condition()
कोई अपवाद उठाता है तो found
अनबाउंड है।
नोट: यदि लेन (अनुक्रम) == 0 तो item
अनबाउंड है।
उपरोक्त कोड उचित नहीं है। इसका उद्देश्य यह बताना है कि स्थानीय चर कैसे काम करते हैं, अर्थात् "चर" को "परिभाषित" किया जाता है या नहीं, इस मामले में केवल रनटाइम पर निर्धारित किया जा सकता है। पसंदीदा तरीका:
for item in sequence:
if some_condition(item):
do_something(item)
break
या
found = False
for item in sequence:
if some_condition(item):
found = True
break
if found:
do_something(item)