함수 호출 시간 포함 with 독스트링
def log(message, when=None):
"""메시지와 타임스탬프를 로그에 남긴다.
Args:
message: 출력할 메시지
when: 메시지가 발생한 시각(datetime),
디폴트값은 현재 시간이다.
"""
if when is None:
when = datetime.now()
print(f'{when}:{message}')
log('안녕!')# 2020-08-18 12:06:27.168446: 안녕!
sleep(0.1)
log('다시 안녕!') # 2020-08-18 12:06:27.274338: 다시 안녕!
보통 파이썬 사용은 디폴트 값으로 None지정 후 실제 동작을 독스트링에 문서화
def log(message, when=None):
"""메시지와 타임스탬프를 로그에 남긴다.
Args:
message:출력할 메시지.
when: 메시지가 발생한 시각
디폴트 값은 현재 시간이다.
"""
if when is None:
when = datetime.now()
print(f{'when}:{message}')
log('안녕!')# 2020-08-18 12:06:27.168446: 안녕!
log('다시 안녕!') # 2020-08-18 12:06:27.274338: 다시 안녕!
인자가 가변적인 경우 디폴트값으로 None을 사용하는 것이 중요하다
import json
def decode(data, default={}):
try:
return json, loads(data)
except ValueError:
return default
한 쪽 딕셔너리만 변경이 되고 싶게 할 때
#해답은 함수에 있는 키워드 인자의 디폴트값으러 None으로 지정
def decode(data, default=None):
"""문자열로부터 Json 데이터를 읽어온다
Args:
data: 디코딩할 JSON데이터
default: 디코딩 실패 시 반환할 값이다.
디폴트 값은 빈 딕셔너리이다.
"""
try:
return json.loads(data)
except ValueError:
if default is None:
default = {}
return default