2012-03-21 4 views
0
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 부분을 제외하고 나머지는 설명 할 필요가 없다. 문맥에 대해 나머지 부분을 추가했다.)이 파이썬 코드는 무엇을합니까?

+0

예외를 기록합니다. 'log.write ('% s \ n'% e)는 '파일에 무엇인가를 쓰고,'e '를 쓰는 것을'의미합니다. ' 문자열 형식이라고합니다. – birryree

+0

즉, 귀하의 질문은 "이 매개 변수는 log.write()의 의미는 무엇입니까?" 좀 더 구체적인 질문을하는 것이 더 나을 것입니다. "이 코드는 무엇을합니까?" 매우 모호하고 일반적입니다. – jhocking

+2

시도해 보셨습니까 *? –

답변

2

이 코드는 존재하지 않는 키를 찾은 경우에는 존재하지 않는 키의 이름도 logfile.txt 파일에 기록된다는 점을 제외하면 dictionary.get(name)과 대략 같습니다. 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',) 
  • 참고는, 파일을 추가하지 않습니다.
0

logfile.txt이라는 파일을 열고 예외와 관련된 메시지를 기록한다.

0

사전 [name]의 값을 반환하려고 시도합니다. 성공하지 못하면 외부 파일에 오류를 기록합니다.

0

logfile.txt에 예외를 씁니다.

% (S)는 n \

새 광고 문자 (예외 문자열 표현 인) E로 치환된다.

-1

사전에서 값을 반환하려고 시도합니다.

관련 문제