[TIL] 파이썬 deep dive - part 3 (dictionaries, sets, json)
https://www.udemy.com/course/python-3-deep-dive-part-3
파이썬 심화반 강의의 세번째입니다. 마치 피터 노튼의 “인사이드 피씨” 같은 느낌의 강의네요.
part 3 에서는 다음의 주제를 다룹니다.
Dictionaries :
파이썬의 많은 구성요소들이 - class, module, scope, set 등이 알고 보면 dict 입니다.
dict는 list 보다 메모리를 더 차지하지만 키 검색이 필요한 모든 구성요소는 dict 로 구현되어 있습니다.
immutable object 만 key 가 될 수 있으며, class 의 경우 key 로 쓰려면 인터페이스 요건이 있습니다.
Sets:
set 은 dict 의 일종으로 볼 수 있습니다
tuple 처럼 immutable 한 frozen set 이 존재합니다
shallow copy와 deep copy 를 구분하여 쓸 수 있게 합니다
Serialization:
pickling 은 보안 문제점으로 잘 쓰이지 않습니다
json dump 와 load를 설명합니다.
custom encoder/decoder 를 만들어 봅니다
여전히 5점 만점에 5점을 주고 싶은 강의입니다.
p.s.
뚱딴지 같이 파이썬의 function overloading 에 해당하는 @singledispatch를 이해하게 되었습니다.
part2 에서 나온 건데 part 3 에서 이해가 되네요.
# json_format() 함수에
# datetime 타입과 set 타입의 파라미터를 처리하는
# json_format(datetime) 과 json_format(set) 을 추가하는 사례
@singledispatch
def json_format(arg):
print(arg)
try:
print('\ttrying to use toJSON...')
return arg.toJSON()
except AttributeError:
print('\tfailed - trying to use vars...')
try:
return vars(arg)
except TypeError:
print('\tfailed - using string representation...')
return str(arg)
@json_format.register(datetime)
def _(arg):
return arg.isoformat()
@json_format.register(set)
def _(arg):
return list(arg)댓글을 남기려면 로그인이 필요합니다.
로그인 후 이 페이지로 돌아와 바로 댓글을 남길 수 있습니다.
