Ce code est à peu près équivalent à dictionary.get(name)
, sauf que dans le cas où une clé inexistante est recherchée, le nom de la clé inexistante est également écrit dans le fichier logfile.txt
. De manière similaire à dict.get
, l'objet None
sera renvoyé par la fonction dans ce cas, et l'exception ne sera pas être re-déclenché.
Vous pouvez effacer les choses pour vous en expérimentant dans l'interpréteur:
>>> d = {'some_key_which_exists': 'some_value'}
>>> d['some_key_which_exists']
'some_value'
>>> d['some_key_which_does_not_exist']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'some_key_which_does_not_exist'
>>> try:
... d['some_key_which_does_not_exist']
... except Exception as e:
... print '%s\n' % e
...
'some_key_which_does_not_exist'
>>> e
KeyError('some_key_which_does_not_exist',)
- Notez-le sur-écrit le fichier, il ne rajoutez pas le fichier.
Il enregistre l'exception. 'log.write ('% s \ n'% e)' signifie 'écrire quelque chose dans le fichier, et utiliser 'e' comme chose à écrire'. C'est ce qu'on appelle la mise en forme de chaîne. – birryree
Donc, en d'autres termes, votre question est "qu'est-ce que ce paramètre de log.write() signifie?" Vous feriez mieux de poser une question plus précise. "Que fait ce code?" est très vague et générique. – jhocking
Avez-vous * l'essayer *? –