Skip to content

Latest commit

ย 

History

History
55 lines (39 loc) ยท 1.07 KB

File metadata and controls

55 lines (39 loc) ยท 1.07 KB

Python attrs lib

Python attrs is a Python library that simplifies the process of defining classes by generating boilerplate code.

  • Install
python -m pip install attrs

Basic Code

Default

๋ชจ๋“  attribute์— ๋Œ€ํ•ด์„œ class์— ๊ฐ’์„ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š์„ ๊ฒฝ์šฐ, ์ดˆ๊ธฐ ๊ฐ’์„ ์œ„ํ•œ custom code ์ƒ์„ฑ ๊ฐ€๋Šฅ

  • Example Code
from attrs import Factory
@define
class User:
 a: int = 42
 b: list = Factory(list)
 c: dict = field()
 
 @d.default
 def _any_name(self):
  return {}

** Factory

Class ๊ฐ์ฒด๋งˆ๋‹ค ๊ณ ์œ ํ•œ ํ•„๋“œ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ํ• ๋‹น

๊ธฐ๋ณธ ๋ฆฌ์ŠคํŠธ ์ดˆ๊ธฐํ™”๋กœ ์„ ์–ธํ•  ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์™€ ํ•„๋“œ๊ฐ’ ๊ณต์œ ๊ฐ€ ๋˜๋ฒ„๋ฆผ

@define
class A:
    x = []
a = A()
b = A()
a.x.append(42)
b.x
>>> [42]

์ฃผ์˜์‚ฌํ•ญ decorator ๋“ค์€ attribute๋“ค์ด set ๋  ๋•Œ ์ˆ˜ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์—, attr์˜ ์ˆœ์„œ์— ์˜์กด๋˜์–ด ์žˆ์–ด self Object๊ฐ€ ์™„์ „ํ•˜๊ฒŒ initialized ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. self ๋ฅผ ๋˜๋„๋ก ์ ๊ฒŒ ์‚ฌ์šฉํ• ๊ฒƒ.!

  • Official Docs

https://www.attrs.org/en/stable/index.html