You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
songs = ["Take me back to Eden", "Alkaline", "Ascensionism"]
62
116
print(f"This is the playlist: {', '.join(songs)}")
117
+
# Python 3.11에서는 같은 따옴표(' 또는 ")를 내부에서 사용할 수 없었음 → 이제 가능!
63
118
119
+
# 2. 여러 줄 표현과 주석 사용 가능
64
120
playlist =f"""
65
121
This is the playlist: {", ".join([
66
-
"Take me back to Eden", #첫 번째 곡
67
-
"Alkaline", #두 번째 곡
68
-
"Ascensionism"#세 번째 곡
122
+
"Take me back to Eden", #좋아하는 곡 1
123
+
"Alkaline", #좋아하는 곡 2
124
+
"Ascensionism"#좋아하는 곡 3
69
125
])}
70
126
"""
71
-
print(playlist)
127
+
print(playlist) # 여러 줄에 걸쳐 표현 가능 + 주석도 가능!
128
+
129
+
# 3. 백슬래시와 유니코드 문자 사용 가능
130
+
print(f"This is the playlist: {'\n'.join(songs)}")
131
+
# 줄 바꿈을 f-string 내부에서 사용할 수 있게 됨
132
+
133
+
print(f"This is the playlist: {'\N{BLACK HEART SUIT}'.join(songs)}")
134
+
# 유니코드 문자 (♥)도 정상적으로 표현됨
135
+
136
+
# 4. 에러 메시지가 더 정확하게 표시됨
137
+
my_string =f"{x z y}"+f"{1+1}"
138
+
# Python 3.11 → 에러 메시지가 명확하지 않음
139
+
# Python 3.12 → 에러 발생한 위치가 더 정확하게 표시됨
72
140
```
73
141
74
142
### 새로운 타입 어노테이션 추가 (PEP 695)
75
143
76
144
Python 3.12에서는 제네릭(Generic) 타입을 보다 간결하게 정의할 수 있도록 개선되었다.
77
145
78
146
#### 개선된 사항
147
+
79
148
1.`TypeVar`을 선언할 필요 없이 `[T]`를 바로 사용할 수 있다.
80
149
2.`type` 키워드를 활용하여 타입 별칭(Alias)을 선언할 수 있다.
81
-
3. Bound 및 Constraints 적용이 더욱 간결해졌다.
82
150
83
151
#### 예제 코드
152
+
84
153
```python
85
154
defmax[T](args: Iterable[T]) -> T:
86
155
returnmax(args)
@@ -104,6 +173,7 @@ type IntOrStrSequence[T: (int, str)] = Sequence[T]
104
173
기존 Python은 GIL(Global Interpreter Lock)로 인해 멀티코어를 활용하기 어려웠다. Python 3.13에서는 실험적으로 GIL을 비활성화할 수 있는 Free-threaded 모드가 추가되었다.
105
174
106
175
#### 주요 특징
176
+
107
177
- 기본적으로 GIL이 활성화되어 있지만, `python3.13t` 실행 파일을 사용하면 GIL 없이 실행할 수 있다.
108
178
- 실행 방법:
109
179
```bash
@@ -113,6 +183,7 @@ type IntOrStrSequence[T: (int, str)] = Sequence[T]
113
183
- 현재는 실험적인 기능이며 일부 성능 저하가 있을 수 있다.
114
184
115
185
#### GIL 상태 확인 방법
186
+
116
187
```python
117
188
import sys
118
189
print(sys._is_gil_enabled()) # False면 GIL이 비활성화된 상태
@@ -123,6 +194,7 @@ print(sys._is_gil_enabled()) # False면 GIL이 비활성화된 상태
123
194
Python 3.13에서는 JIT 컴파일러가 실험적으로 추가되어 실행 속도를 향상시킬 수 있다.
124
195
125
196
#### 주요 특징
197
+
126
198
- 자주 실행되는 바이트코드를 기계어로 변환하여 실행 속도를 높인다.
127
199
- 실행 방법:
128
200
```bash
@@ -135,5 +207,4 @@ Python 3.13에서는 JIT 컴파일러가 실험적으로 추가되어 실행 속
135
207
136
208
## 결론
137
209
138
-
Python 3.11부터 3.13까지 지속적인 성능 개선과 새로운 기능이 추가되었다. 특히, f-string 개선, 타입 어노테이션 간소화, GIL 제거 지원, JIT 컴파일러 도입 등이 주목할 만하다. 이러한 변화들을 적극 활용하면 상황에 맞게 더욱 효율적인 Python 코드를 작성할 수 있다.
139
-
210
+
Python 3.11부터 3.13까지 지속적인 성능 개선과 새로운 기능이 추가되었다. 이러한 변화들을 적극 활용하면 상황에 맞게 더욱 효율적인 Python 코드를 작성할 수 있다.
0 commit comments