νμ΄μ¬15 Asyncio - λΉλκΈ° νλ‘κ·Έλλ° μ£Όμ κ°λ νμ΄μ¬μ asyncio λͺ¨λμ λΉλκΈ° I/O, μ΄λ²€νΈ 루ν, coroutines λ° νμ€ν¬(task) κ΄λ¦¬ λ±μ ν΅ν΄ λΉλκΈ° νλ‘κ·Έλλ°μ μ§μνλ νμ€ λΌμ΄λΈλ¬λ¦¬μ λλ€. asyncioλ₯Ό μ¬μ©νλ©΄ λ€νΈμν¬ λ° μΉ μμΌ, λ°μ΄ν°λ² μ΄μ€, νμΌ I/O λ±μ μμ μ ν¨μ¨μ μΌλ‘ μ²λ¦¬ν μ μμ΅λλ€.μ΄λ²€νΈ 루ν (Event Loop):μ΄λ²€νΈ 루νλ μ½λ£¨ν΄κ³Ό μ½λ°±μ κ΄λ¦¬νκ³ , I/O μμ μ΄ μλ£λ λκΉμ§ κΈ°λ€λ¦¬λ μν μ ν©λλ€.asyncio.run() ν¨μλ₯Ό ν΅ν΄ μ΄λ²€νΈ 루νλ₯Ό μμν μ μμ΅λλ€.μ½λ£¨ν΄ (Coroutine):async defλ‘ μ μλ ν¨μμ λλ€.await ν€μλλ₯Ό μ¬μ©νμ¬ λ€λ₯Έ μ½λ£¨ν΄μ΄λ λΉλκΈ° μμ μ κΈ°λ€λ¦½λλ€.νμ€ν¬ (Task):μ½λ£¨ν΄μ μ΄λ²€νΈ 루νμμ μ€νν μ μλ λ¨μλ‘ λ³νν©λλ€... 2024. 6. 23. μ½λ£¨ν΄ μ½λ£¨ν΄μ κΈ°λ³Έ κ°λ νμ΄μ¬μ μ½λ£¨ν΄(coroutine)μ λΉλκΈ° νλ‘κ·Έλλ°μ ꡬννλ λ° μ¬μ©λλ κΈ°λ₯μ λλ€. μ½λ£¨ν΄μ ν¨μμ μ μ¬νμ§λ§, μ€ν μ€μ μΌμ μ€μ§νκ³ λμ€μ λ€μ μμν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λμμ±μ κ΄λ¦¬νκ³ I/O μμ μ λΉλκΈ°λ‘ μ²λ¦¬ν μ μμ΅λλ€. νμ΄μ¬μ μ½λ£¨ν΄μ async λ° await ν€μλλ₯Ό μ¬μ©νμ¬ μ μνκ³ μ μ΄ν©λλ€.μ μ: μ½λ£¨ν΄ ν¨μλ async def ν€μλλ₯Ό μ¬μ©νμ¬ μ μλ©λλ€.νΈμΆ: μ½λ£¨ν΄ ν¨μλ₯Ό νΈμΆνλ©΄ μ€νλμ§ μκ³ μ½λ£¨ν΄ κ°μ²΄λ₯Ό λ°νν©λλ€.μΌμ μ€μ§μ μ¬κ°: μ½λ£¨ν΄ λ΄λΆμμ await ν€μλλ₯Ό μ¬μ©νμ¬ λ€λ₯Έ μ½λ£¨ν΄μ νΈμΆνκ±°λ λΉλκΈ° μμ μ΄ μλ£λ λκΉμ§ κΈ°λ€λ¦½λλ€. μ΄λ μ½λ£¨ν΄μ μΌμ μ€μ§λλ©°, ν΄λΉ μμ μ΄ μλ£λλ©΄ λ€μ μ€νμ μ¬κ°ν©λλ€. μ½λ£¨ν΄μ μμ λ€.. 2024. 6. 23. νμ΄μ¬ ν¨νΉ(packing)κ³Ό μΈν¨νΉ(unpacking)μ λͺ¨λ κ² μ€λ μκ°νλ ν¨νΉκ³Ό μΈν¨νΉμ λ°μ΄ν°λ³΄λ€λ ν¨μ νΈμΆμ μΈμ(Arguments) μ€μ¬μΌλ‘ μ€λͺ ν©λλ€. ν¨νΉ(Packing) printν¨μλ μΆλ ₯νκ³ μ νλ μΈμκ° λͺ κ°λ κ°μ μκ΄νμ§ μκ³ μΆλ ₯ν΄ μ€λλ€. print("Hello") print("He", "llo") print("He", "ll", "o") # Hello # Hello # Hello ν¨μκ° λ°μ μΈμμ κ°μλ₯Ό μ ν΄λμ§ μμμ λ(κ°λ³ μΈμ), μ λ ₯λ°μ μΈμλ€μ μ΄λ»κ² κ΄λ¦¬ν΄μΌ ν κΉμ? λ°λ‘ packingμ΄λΌλ κ°λ μΌλ‘ κ΄λ¦¬νμλ©΄ λ©λλ€. ν¨νΉμ μΈμλ‘ λ°μ μ¬λ¬ κ°μ κ°μ νλμ κ°μ²΄λ‘ ν©μ³μ λ°μ μ μλλ‘ ν©λλ€. κ°λ³μΈμ ν¨νΉμ *ν κ°λ₯Ό 맀κ°λ³μ μμ λΆμμΌλ‘ μ¬μ©ν©λλ€. def func(*args): print(args) pri.. 2023. 12. 17. νμ΄μ¬ map, filter ν¨μ(with. iterator) iterator(λ°λ³΅μ) νμ΄μ¬μμ iterator(λ°λ³΅μ)λ μν κ°λ₯ν κ°μ²΄λ₯Ό λνλ΄λ κ°λ μ λλ€. Iteratorλ __iter__μ __next__ λ©μλλ₯Ό ꡬνν κ°μ²΄λ‘, __iter__λ μκΈ° μμ μ λ°ννκ³ , __next__λ λ€μ κ°μ λ°νν©λλ€. μ΄λ, λ μ΄μ λ°νν κ°μ΄ μμ λ StopIteration μμΈλ₯Ό λ°μμμΌ μνλ₯Ό μ’ λ£ν©λλ€. μλ₯Ό λ€μ΄, κ°λ¨ν iteratorλ₯Ό ꡬνν΄λ³΄κ² μ΅λλ€ class MyIterator: def __init__(self, start, end): self.start = start self.end = end def __iter__(self): return self def __next__(self): if self.start >= self.end: rai.. 2023. 12. 17. νμ΄μ¬ 리μ€νΈ μ»΄ν리ν¨μ , λμ λ리 μ»΄ν리ν¨μ μ λͺ¨λ κ² λ¦¬μ€νΈ μ»΄ν리ν¨μ (List Comprehension) νμ΄μ¬ 리μ€νΈ μ»΄ν리ν¨μ μ κ°κ²°νκ² λ¦¬μ€νΈλ₯Ό μμ±νλ λ°©λ² μ€ νλλ‘, λ°λ³΅λ¬Έκ³Ό 쑰건문μ μ¬μ©νμ¬ λ¦¬μ€νΈλ₯Ό λ§λ€ μ μμ΅λλ€. 리μ€νΈ μ»΄ν리ν¨μ μ μ½λλ₯Ό κ°κ²°νκ² μ μ§νλ©΄μλ κ°λ ₯ν κΈ°λ₯μ μ 곡ν©λλ€. μΌλ°μ μΈ λ¦¬μ€νΈ μ»΄ν리ν¨μ μ ꡬ쑰λ λ€μκ³Ό κ°μ΅λλ€: [ννμ for νλͺ© in iterable if 쑰건] - ννμ: κ° νλͺ©μ λν κ³μ°μ λλ ννμμ λνλ λλ€. - νλͺ©: λ°λ³΅ κ°λ₯ν(iterable) κ°μ²΄μμ κ°μ Έμ¨ κ°μ λλ€. - iterable: λ°λ³΅ κ°λ₯ν κ°μ²΄(리μ€νΈ, νν, λ¬Έμμ΄ λ±)λ₯Ό λνλ λλ€. - 쑰건: μ νμ μΌλ‘ ν¬ν¨ν 쑰건μ μ§μ ν©λλ€. 쑰건μ νμμ λ°λΌ μλ΅ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, 0λΆν° 9κΉμ§μ μ«μ μ€μμ μ§μ.. 2023. 12. 12. νμ΄μ¬ μ€νμ λ©μλμ λͺ¨λ κ²(__init__, __str__, __len__ λ±) νμ΄μ¬μμ μ€νμ λ©μλ(λλ λ§€μ§ λ©μλ)λ μ΄μ€ μΈλμ€μ½μ΄λ‘ λλ¬μΈμΈ μ΄λ¦μ κ°μ§λ©°, κ°μ²΄μ νΉμ λμμ μ μνλ λ° μ¬μ©λ©λλ€. μ΄λ¬ν λ©μλλ€μ ν΄λμ€μ μ μλλ©°, λ΄μ₯ ν¨μλ μ°μ°μ λ±κ³Ό μνΈ μμ©νλλ‘ μ€κ³λμ΄ μμ΅λλ€. λ€μμ λͺ κ°μ§ μ£Όμ μ€νμ λ©μλμ μ’ λ₯μ μμμ λλ€. 1. __init__(self, ...): κ°μ²΄κ° μμ±λ λ νΈμΆλλ λ©μλλ‘, μ΄κΈ°νλ₯Ό λ΄λΉν©λλ€. class MyClass: def __init__(self, x): self.x = x obj = MyClass(10) 2. __str__(self), __repr__(self): κ°μ²΄λ₯Ό λ¬Έμμ΄λ‘ νννλλ° μ¬μ©λλ λ©μλμ λλ€. class MyClass: def __init__(self, x): self.x = x d.. 2023. 12. 11. μ΄μ 1 2 3 λ€μ