Prima di tutto, la mia risposta alla domanda che hai inizialmente posto
D: Come posso scoprire se una variabile è definita in un punto del mio codice?
A: Leggi nel file sorgente fino a quando vedi una riga in cui è definita quella variabile.
Inoltre, hai fornito un esempio di codice secondo cui ci sono varie permutazioni che sono piuttosto pitoniche. Stai cercando un modo per scansionare una sequenza per elementi che corrispondono a una condizione, quindi ecco alcune soluzioni:
def findFirstMatch(sequence):
for value in sequence:
if matchCondition(value):
return value
raise LookupError("Could not find match in sequence")
Chiaramente in questo esempio è possibile sostituire il raise
con un a return None
seconda di ciò che si desidera ottenere.
Se volessi tutto ciò che corrispondeva alla condizione, potresti farlo:
def findAllMatches(sequence):
matches = []
for value in sequence:
if matchCondition(value):
matches.append(value)
return matches
C'è un altro modo di farlo con yield
quello che non mi preoccuperò di mostrarti, perché è abbastanza complicato nel modo in cui funziona.
Inoltre, esiste un modo unico per raggiungere questo obiettivo:
all_matches = [value for value in sequence if matchCondition(value)]