Alert
μ΄ κΈμ Claude Codeμ λμμ λ°μ μμ±λμμ΅λλ€
TL;DR
- Python 3.15λ
lazyν€μλ κΈ°λ° μ§μ° import(PEP 810)λ‘ μ½λ μ€ννΈ μκ°μ λ¨μΆ- λΆλ³ λμ λ리
frozendict(PEP 814)μ κ³ μ κ°sentinel(PEP 661)μ΄ λ΄μ₯ νμ μΌλ‘ μΆκ°- μ»΄ν리ν¨μ Β·μ λλ μ΄ν° μ μμμ
*/**μΈν¨νΉ νμ©(PEP 798)- JIT μ±λ₯ ν₯μ, μνλ§ νλ‘νμΌλ¬ μΆκ°, 3.14μ incremental GCλ μ² ν
- μμ± μμ 3.15λ beta(3.15.0b3) λ¨κ³λ‘, 2026λ 6μ κΈ°λ₯ λκ²° ν νμ λ νλͺ© κΈ°μ€
Source
λ¬Έλ² λ³ν
- Lazy imports(PEP 810):
lazyμννΈ ν€μλλ‘ importλ₯Ό μ€μ μ¬μ© μμ κΉμ§ 미룬λ€. top-level importκ° λ§μ CLIΒ·μΉ νλ‘μΈμ€μ μ½λ μ€ννΈμμ μλ°± msλ₯Ό μ€μΌ μ μλ€. μμΈν λμκ³Ό μ μ© λ°©μμ Python Lazy Imports - PEP 810μ μ λ¦¬λΌ μλ€. - μ»΄ν리ν¨μ
λ΄ μΈν¨νΉ(PEP 798):
*Β·**μΈν¨νΉμ μ»΄ν리ν¨μ κ³Ό μ λλ μ΄ν° μ μμμ μΈ μ μλ€. μ€μ²© 루νλ₯Ό νμ΄ μΈ μ μμ΄ ννμ΄ κ°κ²°ν΄μ§λ€.
# κΈ°μ‘΄
y = [a for sub in lists for a in sub]
# 3.15
y = [*sub for sub in lists]μ λ΄μ₯ νμ
- frozendict(PEP 814): λΆλ³ λμ λ리. μμ± ν μΆκ°Β·μμ Β·λ³κ²½μ΄ λΆκ°λ₯νκ³ , ν€μ κ°μ΄ λͺ¨λ ν΄μ κ°λ₯νλ©΄ μμ λ ν΄μ κ°λ₯ν΄ λ€λ₯Έ λμ λ리μ ν€λ‘ μΈ μ μλ€. μ½μ μμλ 보쑴νμ§λ§ λΉκ΅λ μμλ₯Ό λ°μ§μ§ μλλ€.
- sentinel(PEP 661): κ³ μ ν sentinel κ°μ λ§λλ νμ
.
Noneμ μ ν¨ν κ°μΌλ‘ μ¨μΌ ν΄μobject()λ‘ λΉ νμμ λ§λ€λ κ΄νμ λ체νλ€. 볡μ¬ν΄λ identityκ° μ μ§λκ³ νμ μμμ|λ‘ μΈ μ μλ€. λͺ¨λΒ·μ΄λ¦μΌλ‘ import κ°λ₯νλ©΄ pickleλ λλ€.
μ±λ₯κ³Ό λꡬ
- JIT κ°μ : 3.13μ λμ
λ JITμ΄ x86-64 Linux κΈ°μ€ 8
9%, AArch64 macOS κΈ°μ€ 1213%μ μ±λ₯ ν₯μμ 보μΈλ€. - μνλ§ νλ‘νμΌλ¬:
profiling.samplingλͺ¨λλ‘ ν΅κ³ μνλ§ κΈ°λ° νλ‘νμΌλ§μ΄ μΆκ°λλ€. λͺ¨λ νΈμΆμ μΆμ ν΄ μ ννμ§λ§ λλ¦°cProfile(μ΄μ profiling.tracingμΌλ‘ κ°λͺ )λ³΄λ€ μ€λ²ν€λκ° ν¨μ¬ μλ€. - Incremental GC μ² ν: 3.14μ λ€μ΄κ°λ incremental GCκ° λ©λͺ¨λ¦¬ μ¬μ©λμ ν€μ΄λ€λ λ³΄κ³ λ‘ μ² νλλ€. 3.13 μ΄μ μ generational GCλ‘ λλμκ°κ³ , κ°μ ν μ¬λμ μ΄ μμ λΌ μλ€.
νμ κ³Ό κΈ°ν
- TypedDict νμ₯: μ§μ ν ν€λ§ νμ©νλ
closedμΈμμ, μΆκ° ν€λ₯Ό νμ©νλ νμ μ μ§μ νλextra_itemsμΈμκ° μΆκ°λλ€. - TypeForm: νμ μ체λ₯Ό κ°μΌλ‘ λ€λ£¨λ μ리μ νμ ννμ μΈ μ μκ² νλ€. νμ κ΄λ ¨ λ³κ²½μ Python typing μ°Έκ³ .
- μλ¬ λ©μμ§ κ°μ :
AttributeErrorμ μ λ²μκ° λμ΄μ‘κ³ , λ€λ₯Έ μΈμ΄μ νν λ©μλλͺ λ μ°Έκ³ ν΄ μ μνλ€(μ:list.push()νΈμΆ μ.append()λ₯Ό μ μ).