这个python代码是做什么的?
问题描述:
def getvalue(dictionary, name):
try:
return dictionary[name]
except Exception as e:
log = open('logfile.txt', 'w')
log.write('%s\n' % e)
log.close()
这段代码做了什么? (除了log.write部分外,我完全理解它,不需要解释其余部分,我只是将其余部分加入上下文)这个python代码是做什么的?
答
该代码大致相当于dictionary.get(name)
,只是在查找不存在的密钥的情况下,不存在的密钥的名称也写入文件logfile.txt
。与dict.get
类似,在这种情况下将由函数返回对象None
,并且将重新提出异常将而不是。
您可以通过在解释实验搞清楚自己:
>>> 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',)
- 注意它过度写入文件时,它不会将文件追加。
答
它打开一个名为logfile.txt
的文件,并将与该例外相关的消息写入它。
答
尝试返回字典[name]的值。如果不成功,则将错误写入外部文件。
答
它将异常写入logfile.txt。
%S取代有E(其为异常字符串表示)
\ n是新行字符。
答
它“试图”从字典中返回值。
它记录异常。 'log.write('%s \ n'%e)'意味着'写一些东西给文件,并用'e'作为写出来的东西。它被称为字符串格式。 – birryree 2012-03-21 02:37:39
换句话说,你的问题是“log.write()的这个参数是什么意思?”你最好问一个更具体的问题。 “这个代码做什么?”是非常含糊和通用的。 – jhocking 2012-03-21 02:37:41
你*尝试过*吗? – 2012-03-21 03:28:44