Skip to content

CoodingPenguin/effective-python-study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ํŒŒ์ด์ฌ ์ฝ”๋”ฉ์˜ ๊ธฐ์ˆ  ํ‘œ์ง€

ํŒŒ์ด์ฌ ์ฝ”๋”ฉ์˜ ๊ธฐ์ˆ 

๋ธŒ๋ › ์Šฌ๋ผํ‚จ

๐Ÿ“– ์ฑ… ์†Œ๊ฐœ

ํŒŒ์ด์ฌ๋‹ค์šด ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•, ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํ†ต์ฐฐ์„ ๋‹ด์•˜๋‹ค! 2ํŒ์—์„œ๋Š” ํŒŒ์ด์ฌ 3.8๊นŒ์ง€ ์ด๋ฅด๋Š” ํŒŒ์ด์ฌ 3์—๋งŒ ์ดˆ์ ์„ ๋งž์ท„์œผ๋ฉฐ, 1ํŒ์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ๊ฒ€ํ† ํ•˜๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ณ  ๊ฐฑ์‹ ํ–ˆ๋‹ค. ๋˜ํ•œ, ํŒŒ์ด์ฌ 3์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ถฉ๋ถ„ํžˆ ๋ณด๊ฐ•ํ–ˆ๋‹ค. ์ฑ… ์†์— ๋‹ด๊ธด 90๊ฐ€์ง€ Better way๋ฅผ ํ†ตํ•ด ๋ฌด์—‡์„ ํ•˜๊ณ  ๋ฌด์—‡์„ ํ•˜์ง€ ๋ง์•„์•ผ ํ• ์ง€, ์ด ๋ฐฉ๋ฒ•์ด ์™œ ์ตœ์„ ์ธ์ง€ ์ดํ•ดํ•˜๋ฉด์„œ ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์Šต๋“ํ•˜์ž!

๐Ÿ” ๋ชฉ์ฐจ

1์žฅ. ํŒŒ์ด์ฌ๋‹ต๊ฒŒ ์ƒ๊ฐํ•˜๊ธฐ
Better way 1 ์‚ฌ์šฉ ์ค‘์ธ ํŒŒ์ด์ฌ์˜ ๋ฒ„์ „์„ ์•Œ์•„๋‘๋ผ
Better way 2 PEP 8 ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ฅด๋ผ
Better way 3 bytes์™€ str์˜ ์ฐจ์ด๋ฅผ ์•Œ์•„๋‘๋ผ
Better way 4 C ์Šคํƒ€์ผ ํ˜•์‹ ๋ฌธ์ž์—ด์„ str.format๊ณผ ์“ฐ๊ธฐ๋ณด๋‹ค๋Š” f-๋ฌธ์ž์—ด์„ ํ†ตํ•œ ์ธํ„ฐํด๋ ˆ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 5 ๋ณต์žกํ•œ ์‹์„ ์“ฐ๋Š” ๋Œ€์‹  ๋„์šฐ๋ฏธ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ผ
Better way 6 ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ๋Œ€์ž…์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์–ธํŒจํ‚นํ•˜๋ผ
Better way 7 range๋ณด๋‹ค๋Š” enumerate๋ฅผ ์‚ฌ์šฉํ•˜๋ผ 066
Better way 8 ์—ฌ๋Ÿฌ ์ดํ„ฐ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•ด ๋‚˜๋ž€ํžˆ ๋ฃจํ”„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด zip์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 9 for๋‚˜ while ๋ฃจํ”„ ๋’ค์— else ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผ
Better way 10 ๋Œ€์ž…์‹์„ ์‚ฌ์šฉํ•ด ๋ฐ˜๋ณต์„ ํ”ผํ•˜๋ผ
2์žฅ. ๋ฆฌ์ŠคํŠธ์™€ ๋”•์…”๋„ˆ๋ฆฌ
Better way 11 ์‹œํ€€์Šค๋ฅผ ์Šฌ๋ผ์ด์‹ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํ˜€๋ผ
Better way 12 ์ŠคํŠธ๋ผ์ด๋“œ์™€ ์Šฌ๋ผ์ด์Šค๋ฅผ ํ•œ ์‹์— ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผ
Better way 13 ์Šฌ๋ผ์ด์‹ฑ๋ณด๋‹ค๋Š” ๋‚˜๋จธ์ง€๋ฅผ ๋ชจ๋‘ ์žก์•„๋‚ด๋Š” ์–ธํŒจํ‚น์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 14 ๋ณต์žกํ•œ ๊ธฐ์ค€์„ ์‚ฌ์šฉํ•ด ์ •๋ ฌํ•  ๋•Œ๋Š” key ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 15 ๋”•์…”๋„ˆ๋ฆฌ ์‚ฝ์ž… ์ˆœ์„œ์— ์˜์กดํ•  ๋•Œ๋Š” ์กฐ์‹ฌํ•˜๋ผ
Better way 16 in์„ ์‚ฌ์šฉํ•˜๊ณ  ๋”•์…”๋„ˆ๋ฆฌ ํ‚ค๊ฐ€ ์—†์„ ๋•Œ KeyError๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋ณด๋‹ค๋Š” get์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 17 ๋‚ด๋ถ€ ์ƒํƒœ์—์„œ ์›์†Œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ๋Š” setdefault๋ณด๋‹ค defaultdict๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 18 __missing__์„ ์‚ฌ์šฉํ•ด ํ‚ค์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋””ํดํŠธ ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‘๋ผ
3์žฅ. ํ•จ์ˆ˜
Better way 19 ํ•จ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ ์ ˆ๋Œ€๋กœ ๋„ค ๊ฐ’ ์ด์ƒ์„ ์–ธํŒจํ‚นํ•˜์ง€ ๋ง๋ผ
Better way 20 None์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ๋ผ
Better way 21 ๋ณ€์ˆ˜ ์˜์—ญ๊ณผ ํด๋กœ์ €์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๋ผ
Better way 22 ๋ณ€์ˆ˜ ์œ„์น˜ ์ธ์ž๋ฅผ ์‚ฌ์šฉํ•ด ์‹œ๊ฐ์ ์ธ ์žก์Œ์„ ์ค„์—ฌ๋ผ
Better way 23 ํ‚ค์›Œ๋“œ ์ธ์ž๋กœ ์„ ํƒ์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ผ
Better way 24 None๊ณผ ๋…์ŠคํŠธ๋ง์„ ์‚ฌ์šฉํ•ด ๋™์ ์ธ ๋””ํดํŠธ ์ธ์ž๋ฅผ ์ง€์ •ํ•˜๋ผ
Better way 25 ์œ„์น˜๋กœ๋งŒ ์ธ์ž๋ฅผ ์ง€์ •ํ•˜๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ํ‚ค์›Œ๋“œ๋กœ๋งŒ ์ธ์ž๋ฅผ ์ง€์ •ํ•˜๊ฒŒ ํ•ด์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๋งŒ๋“ค๋ผ
Better way 26 functools.wrap์„ ์‚ฌ์šฉํ•ด ํ•จ์ˆ˜ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์ •์˜ํ•˜๋ผ
4์žฅ. ์ปดํ”„๋ฆฌํ—จ์…˜๊ณผ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ
Better way 27 map๊ณผ filter ๋Œ€์‹  ์ปดํ”„๋ฆฌํ—จ์…˜์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 28 ์ปดํ”„๋ฆฌํ—จ์…˜ ๋‚ด๋ถ€์— ์ œ์–ด ํ•˜์œ„ ์‹์„ ์„ธ ๊ฐœ ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผ
Better way 29 ๋Œ€์ž…์‹์„ ์‚ฌ์šฉํ•ด ์ปดํ”„๋ฆฌํ—จ์…˜ ์•ˆ์—์„œ ๋ฐ˜๋ณต ์ž‘์—…์„ ํ”ผํ•˜๋ผ
Better way 30 ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์ œ๋„ˆ๋ ˆ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 31 ์ธ์ž์— ๋Œ€ํ•ด ์ดํ„ฐ๋ ˆ์ด์…˜ํ•  ๋•Œ๋Š” ๋ฐฉ์–ด์ ์ด ๋ผ๋ผ
Better way 32 ๊ธด ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜๋ณด๋‹ค๋Š” ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ์‹์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 33 yield from์„ ์‚ฌ์šฉํ•ด ์—ฌ๋Ÿฌ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ๋ฅผ ํ•ฉ์„ฑํ•˜๋ผ
Better way 34 send๋กœ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ์ž…ํ•˜์ง€ ๋ง๋ผ
Better way 35 ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ์•ˆ์—์„œ throw๋กœ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค์ง€ ๋ง๋ผ
Better way 36 ์ดํ„ฐ๋ ˆ์ดํ„ฐ๋‚˜ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋Š” itertools๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
5์žฅ. ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค
Better way 37 ๋‚ด์žฅ ํƒ€์ž…์„ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ๋‚ดํฌ์‹œํ‚ค๊ธฐ๋ณด๋‹ค๋Š” ํด๋ž˜์Šค๋ฅผ ํ•ฉ์„ฑํ•˜๋ผ
Better way 38 ๊ฐ„๋‹จํ•œ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฒฝ์šฐ ํด๋ž˜์Šค ๋Œ€์‹  ํ•จ์ˆ˜๋ฅผ ๋ฐ›์•„๋ผ
Better way 39 ๊ฐ์ฒด๋ฅผ ์ œ๋„ˆ๋ฆญํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด @classmethod๋ฅผ ํ†ตํ•œ ๋‹คํ˜•์„ฑ์„ ํ™œ์šฉํ•˜๋ผ
Better way 40 super๋กœ ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋ผ
Better way 41 ๊ธฐ๋Šฅ์„ ํ•ฉ์„ฑํ•  ๋•Œ๋Š” ๋ฏน์Šค์ธ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 42 ๋น„๊ณต๊ฐœ ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋ณด๋‹ค๋Š” ๊ณต๊ฐœ ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 43 ์ปค์Šคํ…€ ์ปจํ…Œ์ด๋„ˆ ํƒ€์ž…์€ collections.abc๋ฅผ ์ƒ์†ํ•˜๋ผ
6์žฅ. ๋ฉ”ํƒ€ํด๋ž˜์Šค์™€ ์• ํŠธ๋ฆฌ๋ทฐํŠธ
Better way 44 ์„ธํ„ฐ์™€ ๊ฒŒํ„ฐ ๋ฉ”์„œ๋“œ ๋Œ€์‹  ํ‰๋ฒ”ํ•œ ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 45 ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋งํ•˜๋Š” ๋Œ€์‹  @property๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 46 ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ @property ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 47 ์ง€์—ฐ ๊ณ„์‚ฐ ์• ํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ํ•„์š”ํ•˜๋ฉด __getattr__, __getattribute__, __setattr__์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 48 __init_subclass__๋ฅผ ์‚ฌ์šฉํ•ด ํ•˜์œ„ ํด๋ž˜์Šค๋ฅผ ๊ฒ€์ฆํ•˜๋ผ
Better way 49 __init_subclass__๋ฅผ ์‚ฌ์šฉํ•ด ํด๋ž˜์Šค ํ™•์žฅ์„ ๋“ฑ๋กํ•˜๋ผ
Better way 50 __set_name__์œผ๋กœ ํด๋ž˜์Šค ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ํ‘œ์‹œํ•˜๋ผ
Better way 51 ํ•ฉ์„ฑ ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค ํ™•์žฅ์ด ํ•„์š”ํ•˜๋ฉด ๋ฉ”ํƒ€ํด๋ž˜์Šค๋ณด๋‹ค๋Š” ํด๋ž˜์Šค ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
7์žฅ. ๋™์‹œ์„ฑ๊ณผ ๋ณ‘๋ ฌ์„ฑ
Better way 52 ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด subprocess๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 53 ๋ธ”๋กœํ‚น I/O์˜ ๊ฒฝ์šฐ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋ณ‘๋ ฌ์„ฑ์„ ํ”ผํ•˜๋ผ
Better way 54 ์Šค๋ ˆ๋“œ์—์„œ ๋ฐ์ดํ„ฐ ๊ฒฝํ•ฉ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด Lock์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 55 Queue๋ฅผ ์‚ฌ์šฉํ•ด ์Šค๋ ˆ๋“œ ์‚ฌ์ด์˜ ์ž‘์—…์„ ์กฐ์œจํ•˜๋ผ
Better way 56 ์–ธ์ œ ๋™์‹œ์„ฑ์ด ํ•„์š”ํ• ์ง€ ์ธ์‹ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‘๋ผ
Better way 57 ์š”๊ตฌ์— ๋”ฐ๋ผ ํŒฌ์•„์›ƒ์„ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ์ƒˆ๋กœ์šด ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋ง๋ผ
Better way 58 ๋™์‹œ์„ฑ๊ณผ Queue๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฆฌํŒฉํ„ฐ๋งํ•ด์•ผ ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋ผ
Better way 59 ๋™์‹œ์„ฑ์„ ์œ„ํ•ด ์Šค๋ ˆ๋“œ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ThreadpoolExecutor๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 60 I/O๋ฅผ ํ•  ๋•Œ๋Š” ์ฝ”๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•ด ๋™์‹œ์„ฑ์„ ๋†’์—ฌ๋ผ
Better way 61 ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ I/O๋ฅผ ์–ด๋–ป๊ฒŒ asyncio๋กœ ํฌํŒ…ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋‘๋ผ
Better way 62 asyncio๋กœ ์‰ฝ๊ฒŒ ์˜ฎ๊ฒจ๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ์Šค๋ ˆ๋“œ์™€ ์ฝ”๋ฃจํ‹ด์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ผ
Better way 63 ์‘๋‹ต์„ฑ์„ ์ตœ๋Œ€๋กœ ๋†’์ด๋ ค๋ฉด asyncio ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฅผ ๋ธ”๋กํ•˜์ง€ ๋ง๋ผ
Better way 64 ์ง„์ •ํ•œ ๋ณ‘๋ ฌ์„ฑ์„ ์‚ด๋ฆฌ๋ ค๋ฉด concurrent.futures๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
8์žฅ. ๊ฐ•๊ฑด์„ฑ๊ณผ ์„ฑ๋Šฅ
Better way 65 try/except/else/finally์˜ ๊ฐ ๋ธ”๋ก์„ ์ž˜ ํ™œ์šฉํ•˜๋ผ
Better way 66 ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ try/finally ๋™์ž‘์„ ์›ํ•œ๋‹ค๋ฉด contextlib๊ณผ with ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 67 ์ง€์—ญ ์‹œ๊ฐ„์—๋Š” time๋ณด๋‹ค๋Š” datetime์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 68 copyreg๋ฅผ ์‚ฌ์šฉํ•ด pickle์„ ๋” ์‹ ๋ขฐ์„ฑ ์žˆ๊ฒŒ ๋งŒ๋“ค๋ผ
Better way 69 ์ •ํ™•๋„๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” decimal์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 70 ์ตœ์ ํ™”ํ•˜๊ธฐ ์ „์— ํ”„๋กœํŒŒ์ผ๋ง์„ ํ•˜๋ผ
Better way 71 ์ƒ์‚ฐ์ž-์†Œ๋น„์ž ํ๋กœ deque๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 72 ์ •๋ ฌ๋œ ์‹œํ€€์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ๋Š” bisect๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 73 ์šฐ์„ ์ˆœ์œ„ ํ๋กœ heapq๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‘๋ผ
Better way 74 bytes๋ฅผ ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ  ๋‹ค๋ฃจ๋ ค๋ฉด memoryview์™€ bytearray๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
9์žฅ. ํ…Œ์ŠคํŠธ์™€ ๋””๋ฒ„๊น…
Better way 75 ๋””๋ฒ„๊น… ์ถœ๋ ฅ์—๋Š” repr ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 76 TestCase ํ•˜์œ„ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด ํ”„๋กœ๊ทธ๋žจ์—์„œ ์—ฐ๊ด€๋œ ํ–‰๋™ ๋ฐฉ์‹์„ ๊ฒ€์ฆํ•˜๋ผ
Better way 77 setUp, tearDown, setUpModule, tearDownModule์„ ์‚ฌ์šฉํ•ด ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋ผ
Better way 78 ๋ชฉ์„ ์‚ฌ์šฉํ•ด ์˜์กด ๊ด€๊ณ„๊ฐ€ ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋ผ
Better way 79 ์˜์กด ๊ด€๊ณ„๋ฅผ ์บก์Šํ™”ํ•ด ๋ชจํ‚น๊ณผ ํ…Œ์ŠคํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๋ผ
Better way 80 pdb๋ฅผ ์‚ฌ์šฉํ•ด ๋Œ€ํ™”ํ˜•์œผ๋กœ ๋””๋ฒ„๊น…ํ•˜๋ผ
Better way 81 ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด tracemalloc์„ ์‚ฌ์šฉํ•˜๋ผ
10์žฅ. ํ˜‘์—…
Better way 82 ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋งŒ๋“  ๋ชจ๋“ˆ์„ ์–ด๋””์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋‘๋ผ
Better way 83 ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•ด ์˜์กด ๊ด€๊ณ„๋ฅผ ๊ฒฉ๋ฆฌํ•˜๊ณ  ๋ฐ˜๋ณต ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ผ
Better way 84 ๋ชจ๋“  ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ชจ๋“ˆ์— ๋…์ŠคํŠธ๋ง์„ ์ž‘์„ฑํ•˜๋ผ
Better way 85 ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•ด ๋ชจ๋“ˆ์„ ์ฒด๊ณ„ํ™”ํ•˜๊ณ  ์•ˆ์ •์ ์ธ API๋ฅผ ์ œ๊ณตํ•˜๋ผ
Better way 86 ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“ˆ ์˜์—ญ์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
Better way 87 ํ˜ธ์ถœ์ž๋ฅผ API๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์ƒ์œ„ Exception์„ ์ •์˜ํ•˜๋ผ
Better way 88 ์ˆœํ™˜ ์˜์กด์„ฑ์„ ๊นจ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‘๋ผ
Better way 89 ๋ฆฌํŒฉํ„ฐ๋ง๊ณผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด warning์„ ์‚ฌ์šฉํ•˜๋ผ
Better way 90 typing๊ณผ ์ •์  ๋ถ„์„์„ ํ†ตํ•ด ๋ฒ„๊ทธ๋ฅผ ์—†์• ๋ผ

About

๐Ÿ“– Study python programming tips by <Effective Python 2nd> ๐Ÿ

Topics

Resources

Stars

Watchers

Forks

Languages