Ciao! Qualcuno mi spiega come e' possibile che questo script: 1 #!/usr/bin/python 2 import sys 3 import getopt 4 5 quiet = False 6 7 def main(): 8 print quiet 9 optlist, args = getopt.getopt(sys.argv[1:], 'q', ['--quiet']) 10 11 for o,a in optlist: 12 if o in ('-q','--quiet'): 13 quiet=True 14 15 if __name__ == "__main__": 16 main()
Mi dia questo errore: $ python scope.py Traceback (most recent call last): File "scope.py", line 16, in <module> main() File "scope.py", line 8, in main print quiet UnboundLocalError: local variable 'quiet' referenced before assignment ???? quiet e' dichiarato come variabile del modulo, e quindi python dovrebbe andarsi a cercare anche quel valore... ma la cosa piu' strana e' che togliento il "for o,a in optlist:" tutto funziona alla perfezione: 1 #!/usr/bin/python 2 import sys 3 import getopt 4 5 quiet = False 6 7 def main(): 8 print quiet 9 optlist, args = getopt.getopt(sys.argv[1:], 'q', ['--quiet']) 10 11 if __name__ == "__main__": 12 main() $ python scope.py False Non posso neanche pensare che il for faccia cose strane, visto che neanche ci arriva... allora potrei pensare a namespace pollution... ma al limite dovrebbe cambiare valore a qualcosa, non darmi Unbound. Insomma, qualche idea?? ( a parte "ma non hai altro da fare il sabato sera?" :D ) bye! -- -gaspa- ----------------------------------------------- --------- http://launchpad.net/~gaspa --------- ------ HomePage: iogaspa.altervista.org ------- -Il lunedi'dell'arrampicatore: www.lunedi.org - _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python