Skip to content

Commit 39284cc

Browse files
authored
[8ee3431] λ²ˆμ—­ μš”μ²­ πŸ’¬ (#37)
* merge 8ee3431 πŸ›° * [8ee3431] 1.1 λ°°κ²½ 반영 * [8ee3431] 2.1 Lint 반영 * [8ee3431] 2.2 import 반영 * [8ee3431] 2.3 package 반영 * [8ee3431] 2.4 μ˜ˆμ™Έμ²˜λ¦¬ 반영 * [8ee3431] 2.5 이름 λ³€κ²½ * [8ee3431] 2.5 λ³€κ²½ κ°€λŠ₯ν•œ μ „μ—­ μƒνƒœ 반영 * [8ee3431] 2.6 쀑첩 반영 * [8ee3431] 2.7 list comprehensions * [8ee3431] 2.8 κΈ°λ³Έ λ°˜λ³΅μžμ™€ μ—°μ‚°μž 반영 * [8ee3431] 2.9 μ œλ„ˆλ ˆμ΄ν„° 반영 * [8ee3431] 2.10 λžŒλ‹€ 반영 * [8ee3431] 2.12 κΈ°λ³Έ 인자 κ°’ 반영 * [8ee3431] 2.14 True/False 평가 반영 * [8ee3431] 2.16 λ ‰μ‹œμ»¬ μŠ€μ½”ν•‘ 반영 * [8ee3431] 2.17 ν•¨μˆ˜μ™€ λ©”μ„œλ“œ 반영 * [8ee3431] 2.18 μŠ€λ ˆλ“œ 반영 * [8ee3431] 2.20 ν˜„λŒ€μ˜ 파이썬 반영 * [8ee3431] 2.20 이름 λ³€κ²½ * [8ee3431] 2.21 Type 주석 반영 * [8ee3431] 3.2 쀄 길이 반영 * [8ee3431] 3.4 λ“€μ—¬μ“°κΈ° 반영 * [8ee3431] 3.5 빈 쀄 반영 * [8ee3431] 3.7 Shebang_Line 반영 * [8ee3431] 3.8 주석과 docstring 반영 * [8ee3431] 3.10 λ¬Έμžμ—΄ 반영 * [8ee3431] 3.12 TODO 주석 반영 * [8ee3431] 3.13 import ν˜•μ‹ 반영 * [8ee3431] 3.16 넀이밍 반영 * [8ee3431] 3.19 Type 주석 방법 반영 * [8ee3431] 4.1 맺음말 반영 * λΉŒλ“œ κ²½κ³  μˆ˜μ • * λΉŒλ“œ κ²½κ³  μˆ˜μ • * [8ee3431] build
1 parent 3f40f2f commit 39284cc

37 files changed

Lines changed: 2329 additions & 1444 deletions

β€ŽGoogle Python Style Guide kor.mdβ€Ž

Lines changed: 559 additions & 341 deletions
Large diffs are not rendered by default.

β€ŽGoogle Python Style Guide/1. λ°°κ²½/1.1 λ°°κ²½.mdβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
- 이 μŠ€νƒ€μΌ κ°€μ΄λ“œλŠ” Python ν”„λ‘œκ·Έλž¨μ—μ„œ _ν•΄μ•Ό ν•  것듀과 ν•˜μ§€ 말아야 ν•  것_ 듀을 μ μ–΄λ†“μ•˜μŠ΅λ‹ˆλ‹€.
33
- μ½”λ“œ ν˜•μ‹μ„ μ •ν™•ν•˜κ²Œ ν•˜λŠ” 것듀 돕기 μœ„ν•΄, μš°λ¦¬λŠ” [settings file for Vim](google_python_style.vim)을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.
44
- Emacs νŽΈμ§‘κΈ°μ—μ„œλŠ” κΈ°λ³Έ μ„€μ •κ°’μœΌλ‘œ μ‚¬μš©ν•˜λ©΄ λ©λ‹ˆλ‹€.
5-
- λ§Žμ€ νŒ€μ—μ„œ ν˜•μ‹μ— λŒ€ν•œ λ…ΌμŸμ„ ν”Όν•˜κΈ° μœ„ν•΄ [yapf](https://github.com/google/yapf/) auto-formatter 을 μ‚¬μš©ν•©λ‹ˆλ‹€.
5+
- λ§Žμ€ νŒ€μ—μ„œ ν˜•μ‹μ— λŒ€ν•œ λ…ΌμŸμ„ ν”Όν•˜κΈ° μœ„ν•΄ [Black](https://github.com/psf/black) ν˜Ήμ€ [Pyink](https://github.com/google/pyink) auto-formatter 을 μ‚¬μš©ν•©λ‹ˆλ‹€.

β€ŽGoogle Python Style Guide/1. λ°°κ²½/ReadMe.mdβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
- 이 μŠ€νƒ€μΌ κ°€μ΄λ“œλŠ” Python ν”„λ‘œκ·Έλž¨μ—μ„œ _ν•΄μ•Ό ν•  것듀과 ν•˜μ§€ 말아야 ν•  것_ 듀을 μ μ–΄λ†“μ•˜μŠ΅λ‹ˆλ‹€.
33
- μ½”λ“œ ν˜•μ‹μ„ μ •ν™•ν•˜κ²Œ ν•˜λŠ” 것듀 돕기 μœ„ν•΄, μš°λ¦¬λŠ” [settings file for Vim](google_python_style.vim)을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.
44
- Emacs νŽΈμ§‘κΈ°μ—μ„œλŠ” κΈ°λ³Έ μ„€μ •κ°’μœΌλ‘œ μ‚¬μš©ν•˜λ©΄ λ©λ‹ˆλ‹€.
5-
- λ§Žμ€ νŒ€μ—μ„œ ν˜•μ‹μ— λŒ€ν•œ λ…ΌμŸμ„ ν”Όν•˜κΈ° μœ„ν•΄ [yapf](https://github.com/google/yapf/) auto-formatter 을 μ‚¬μš©ν•©λ‹ˆλ‹€.
5+
- λ§Žμ€ νŒ€μ—μ„œ ν˜•μ‹μ— λŒ€ν•œ λ…ΌμŸμ„ ν”Όν•˜κΈ° μœ„ν•΄ [Black](https://github.com/psf/black) ν˜Ήμ€ [Pyink](https://github.com/google/pyink) auto-formatter 을 μ‚¬μš©ν•©λ‹ˆλ‹€.
66

77
---

β€ŽGoogle Python Style Guide/2. Python μ–Έμ–΄ κ·œμΉ™/2.1 Lint.mdβ€Ž

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@
3838
- κ²½κ³ λ₯Ό λ„μš°μ§€ μ•ŠκΈ° μœ„ν•΄, μ½”λ“œμ— 라인 λ‹¨μœ„λ‘œ 주석을 달아야 ν•©λ‹ˆλ‹€.
3939

4040
```python
41-
dict = 'something awful' # Bad Idea... pylint: disable=redefined-builtin
41+
def do_PUT(self): # WSGI name, so pylint: disable=invalid-name
42+
...
4243
```
4344

4445
- `pylint`의 κ²½κ³ λŠ” 각각 symbolic name(`empty-docstring`)으둜 κ΅¬λ³„λ©λ‹ˆλ‹€.
@@ -54,15 +55,15 @@
5455
- 각 λ©”μ‹œμ§€μ— λŒ€ν•΄ μžμ„Έν•œ 정보λ₯Ό μ–»κ³ μž ν•˜λŠ” 경우 λ‹€μŒκ³Ό 같은 λ°©λ²•μœΌλ‘œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
5556

5657
```shell
57-
pylint --help-msg=C6409
58+
pylint --help-msg=invalid-name
5859
```
5960

6061
- `pyling: disable-msg`λŠ” 이전에 μ‚¬μš©ν–ˆλ˜ λ°©μ‹μœΌλ‘œ μ΄μ œλŠ” μ‚¬μš©λ˜μ§€ μ•ŠμœΌλ©° `pylint: disable`λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
6162
- μ‚¬μš©λ˜μ§€ μ•ŠλŠ” μΈμžμ— λŒ€ν•œ κ²½κ³ λŠ” ν•¨μˆ˜λ₯Ό μ‹œμž‘ν•  λ•Œ κ·Έ λ³€μˆ˜λ₯Ό μ§€μ›€μœΌλ‘œμ¨ μ–΅μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ§Œ κ·Έ λ³€μˆ˜λ₯Ό μ™œ μ§€μ› λŠ”μ§€μ— λŒ€ν•΄ 항상 μ£Όμ„μœΌλ‘œ μ„€λͺ…을 μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ κ²½μš°λŠ” "Unused."라고 μž‘μ„±ν•˜λ©΄ μΆ©λΆ„ν•©λ‹ˆλ‹€.
6263
- μ•„λž˜ μ˜ˆμ‹œλ₯Ό μ°Έκ³ ν•˜μ„Έμš”.
6364

6465
```python
65-
def viking_cafe_order(spam: str, beans: str, eggs: Optional[str] = None) -> str:
66+
def viking_cafe_order(spam: str, beans: str, eggs: str | None = None) -> str:
6667
del beans, eggs # Unused by vikings.
6768
return spam + spam + spam
6869
```

β€ŽGoogle Python Style Guide/2. Python μ–Έμ–΄ κ·œμΉ™/2.10 λžŒλ‹€.mdβ€Ž

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828

2929
#### 2.10.4 κ²°λ‘ 
3030

31-
- λžŒλ‹€λ₯Ό ν•œ μ€„λ‘œ μ‚¬μš©ν•˜μ„Έμš”. λ§Œμ•½ μ½”λ“œ 내뢀에 μžˆλŠ” λžŒλ‹€ ν•¨μˆ˜κ°€ 60~80κΈ€μž 수 μ •λ„λ‘œ κΈΈλ‹€λ©΄ 그건 μ•„λ§ˆ 더 일반적인
32-
[Lexical Scoping(λ ‰μ‹œμ»¬ μŠ€μ½”ν•‘)](#s2.16-lexical-scoping)으둜 μ •μ˜ν•˜λŠ”κ²Œ λ‚˜μ„ κ²ƒμž…λ‹ˆλ‹€.
33-
31+
- λžŒλ‹€ ν•¨μˆ˜λŠ” ν—ˆμš©ν•˜μ§€λ§Œ, λžŒλ‹€ ν•¨μˆ˜ λ‚΄λΆ€μ˜ μ½”λ“œκ°€ μ—¬λŸ¬ 쀄에 κ±ΈμΉ˜κ±°λ‚˜ 60-80자λ₯Ό λ„˜λŠ” 경우, 일반적인 [쀑첩 ν•¨μˆ˜](#s2.16-lexical-scoping)둜 μ •μ˜ν•˜λŠ” 것이 더 λ‚˜μ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
3432
- κ³±μ…ˆ 같은 일반 μ—°μ‚°μžμ—μ„œλŠ” `operator`λͺ¨λ“ˆ λŒ€μ‹ μ— λžŒλ‹€ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.
3533
- 예λ₯Ό λ“€μ–΄, `operator.mul`을 `lambda x,y : x * y` 처럼 μ‚¬μš©ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.

β€ŽGoogle Python Style Guide/2. Python μ–Έμ–΄ κ·œμΉ™/2.12 κΈ°λ³Έ 인자 κ°’.mdβ€Ž

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
def foo(a, b=None):
5151
if b is None:
5252
b = []
53-
def foo(a, b: Optional[Sequence] = None):
53+
def foo(a, b: Sequence | None = None):
5454
if b is None:
5555
b = []
5656
def foo(a, b: Sequence = ()): # tuples은 λΆˆλ³€ν•˜κΈ° λ•Œλ¬Έμ— μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.
@@ -60,12 +60,15 @@
6060
- λΆ€μ μ ˆν•œ 예
6161

6262
```python
63+
from absl import flags
64+
_FOO = flags.DEFINE_string(...)
65+
6366
def foo(a, b=[]):
6467
...
65-
def foo(a, b=time.time()): # λͺ¨λ“ˆμ΄ λ‘œλ“œκ°€ 될 λ•Œμ˜ μ‹œκ°„μΈκ°€???
68+
def foo(a, b=time.time()): # `b`κ°€ 이 λͺ¨λ“ˆμ΄ λ‘œλ“œλœ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” κ²ƒμΈκ°€μš”?
6669
...
67-
def foo(a, b=FLAGS.my_thing): # sys.argvλŠ” 아직 ꡬ문 λΆ„μ„λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€...
70+
def foo(a, b=_FOO.value): # sys.argvλŠ” 아직 ꡬ문 λΆ„μ„λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€...
6871
...
69-
def foo(a, b: Mapping = {}): # ν™•μΈλ˜μ§€ μ•Šμ€ μ½”λ“œλ‘œ 전달 될 수 μžˆμŠ΅λ‹ˆλ‹€...
72+
def foo(a, b: Mapping = {}): # ν™•μΈλ˜μ§€ μ•Šμ€ μ½”λ“œλ‘œ 전달 될 수 μžˆμŠ΅λ‹ˆλ‹€.
7073
...
7174
```

β€ŽGoogle Python Style Guide/2. Python μ–Έμ–΄ κ·œμΉ™/2.14 True, False 평가.mdβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
### 2.14 True/False 평가
44

5-
- κ°€λŠ₯ν•œ 경우 "암묡적(implicit)" `false`λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.
5+
- κ°€λŠ₯ν•œ 경우 "암묡적(implicit)" `false`λ₯Ό μ‚¬μš©ν•˜μ„Έμš”. (λͺ‡ κ°€μ§€ μ£Όμ˜μ‚¬ν•­μ΄ μžˆμ§€λ§Œ)
66

77
<a id="s2.14.1-definition"></a>
88

β€ŽGoogle Python Style Guide/2. Python μ–Έμ–΄ κ·œμΉ™/2.16 λ ‰μ‹œμ»¬ μŠ€μ½”ν•‘(Lexical Scoping).mdβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
#### 2.16.3 단점
3535

36-
- ν˜Όλž€μŠ€λŸ¬μš΄ λ²„κ·Έλ‘œ μ΄μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. [PEP-0227](http://www.google.com/url?sa=D&q=http://www.python.org/dev/peps/pep-0227/)μ—μ„œ μžμ„Έν•œ 정보λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
36+
- [PEP-0227](https://peps.python.org/pep-0227)을 기반으둜 ν•œ 이 μ˜ˆμ‹œμ™€ 같이 ν˜Όλž€μŠ€λŸ¬μš΄ 버그λ₯Ό μ΄ˆλž˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
3737

3838
```python
3939
i = 4

β€ŽGoogle Python Style Guide/2. Python μ–Έμ–΄ κ·œμΉ™/2.17 ν•¨μˆ˜μ™€ λ©”μ„œλ“œ Decorators.mdβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,6 @@
4949

5050
- DecoratorλŠ” λΆ„λͺ…ν•œ 이점이 μžˆλ”λΌλ„ ν˜„λͺ…ν•˜κ²Œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. DecoratorλŠ” import와 λͺ…λͺ… 지침을 따라야 ν•©λ‹ˆλ‹€. Decorator pydocλŠ” decorator ν•¨μˆ˜ μž„μ„ λΆ„λͺ…νžˆ λͺ…μ‹œν•΄μ•Όν•©λ‹ˆλ‹€. dcoratorλ₯Ό μœ„ν•œ μœ λ‹› ν…ŒμŠ€νŠΈ(unit test)λ₯Ό μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€.
5151
- Decorator(예. 파일, μ†ŒμΌ“, λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²° λ“±) λ₯Ό μ‹€ν–‰ν•  λ•Œ (`pydoc` ν˜Ήμ€ 기타 도ꡬλ₯Ό import μ‹œκ°„μ— κ°€μ Έμ˜¬ λ•Œ) μ‚¬μš© λͺ»ν•  수 μžˆμœΌλ―€λ‘œ Decorator의 μ™ΈλΆ€ μ˜μ‘΄μ„±μ„ ν”Όν•˜μ„Έμš”. μœ νš¨ν•œ λ§€κ°œλ³€μˆ˜λ₯Ό κ°€μ§„ Decorator은 λͺ¨λ“  κ²½μš°μ— μž‘λ™ν•  수 μžˆλ„λ‘ 보μž₯λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.
52-
- DecoratorλŠ” "Top level code"의 νŠΉλ³„ν•œ 경우일 λ•Œμ—λŠ” [main](#s3.17-main) ν•­λͺ©μ— μžμ„Έν•œ λ‚΄μš©μ΄ μžˆμŠ΅λ‹ˆλ‹€.
52+
- DecoratorλŠ” "Top-level code"의 νŠΉλ³„ν•œ 경우일 λ•Œμ—λŠ” [main](#s3.17-main) ν•­λͺ©μ— μžμ„Έν•œ λ‚΄μš©μ΄ μžˆμŠ΅λ‹ˆλ‹€.
5353
- κΈ°μ‘΄ λΌμ΄λΈŒλŸ¬λ¦¬μ— μ •μ˜λœ API와 ν†΅ν•©ν•˜κΈ° μœ„ν•΄ κ°•μ œν•˜μ§€ μ•ŠλŠ” ν•œ "staticmethod"λ₯Ό μ‚¬μš©ν•˜μ§€ λ§ˆμ„Έμš”. λŒ€μ‹  λͺ¨λ“ˆ 레벨 ν•¨μˆ˜λ₯Ό μ“°μ„Έμš”.
54-
- ν”„λ‘œμ„ΈμŠ€ 전체 μΊμ‹œ λ“± ν•„μš”ν•œ global stateλ₯Ό μˆ˜μ •ν•˜λŠ” λͺ…λͺ…λœ μƒμ„±μž λ˜λŠ” ν΄λž˜μŠ€λ³„ 루틴을 μž‘μ„±ν•  λ•Œλ§Œ "classmethod"λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.
54+
- classmethodλŠ” λͺ…λͺ…λœ μƒμ„±μžλ₯Ό μž‘μ„±ν•˜κ±°λ‚˜ ν”„λ‘œμ„ΈμŠ€ 전체 μΊμ‹œμ™€ 같은 ν•„μˆ˜ μ „μ—­ μƒνƒœλ₯Ό μˆ˜μ •ν•˜λŠ” 클래슀 νŠΉμ • 루틴을 μž‘μ„±ν•  λ•Œλ§Œ μ‚¬μš©ν•˜μ„Έμš”.

β€ŽGoogle Python Style Guide/2. Python μ–Έμ–΄ κ·œμΉ™/2.18 μŠ€λ ˆλ“œ.mdβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
### 2.18 μŠ€λ ˆλ“œ
44

5-
- λ‚΄μž₯된 νƒ€μž…μ˜ μ›μžμ„±μ— μ˜μ‘΄ν•˜μ§€ λ§ˆμ„Έμš”. λ”•μ…”λ„ˆλ¦¬μ™€ 같은 Python의 λ‚΄μž₯된 νƒ€μž…μ€ μ›μž ν˜•νƒœλ‘œ μ‘°μž‘ν•  수 μžˆμ§€λ§Œ κ·ΈλŸ¬μ§€ μ•Šμ€ 경우(예: `__hash__`μ΄λ‚˜ `__eq__`κ°€ Python ν•¨μˆ˜λ‘œ κ΅¬ν˜„λ˜λŠ” 경우)도 있으며 μ›μžλ‘œ λ˜μ–΄μžˆλ‹€κ³  μ‹ λ’°ν•˜λ©΄ μ•ˆ λ©λ‹ˆλ‹€. λ˜ν•œ, μ›μž λ³€μˆ˜ 할당에 μ˜μ‘΄ν•΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. (κ²°κ΅­, λ”•μ…”λ„ˆλ¦¬μ— λ‹¬λ €μžˆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€) μŠ€λ ˆλ“œ κ°„ 데이터λ₯Ό ν†΅μ‹ ν•˜λŠ” 데 μ„ ν˜Έν•˜λŠ” λ°©λ²•μœΌλ‘œ 큐 λͺ¨λ“ˆμ˜ `Queue` 데이터 νƒ€μž…μ„ μ‚¬μš©ν•˜μ„Έμš”. κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ threading λͺ¨λ“ˆμ΄λ‚˜ locking primitivesλ₯Ό μ‚¬μš©ν•˜μ„Έμš”. lower-level lock λŒ€μ‹ ν•΄ Condition variables와 `threading.Condition`λ₯Ό μ„ ν˜Έν•˜μ„Έμš”.
5+
- λ‚΄μž₯된 νƒ€μž…μ˜ μ›μžμ„±μ— μ˜μ‘΄ν•˜μ§€ λ§ˆμ„Έμš”. λ”•μ…”λ„ˆλ¦¬μ™€ 같은 Python의 λ‚΄μž₯된 νƒ€μž…μ€ μ›μž ν˜•νƒœλ‘œ μ‘°μž‘ν•  수 μžˆμ§€λ§Œ κ·ΈλŸ¬μ§€ μ•Šμ€ 경우(예: `__hash__`μ΄λ‚˜ `__eq__`κ°€ Python ν•¨μˆ˜λ‘œ κ΅¬ν˜„λ˜λŠ” 경우)도 있으며 μ›μžλ‘œ λ˜μ–΄μžˆλ‹€κ³  μ‹ λ’°ν•˜λ©΄ μ•ˆ λ©λ‹ˆλ‹€. λ˜ν•œ, μ›μž λ³€μˆ˜ 할당에 μ˜μ‘΄ν•΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. (κ²°κ΅­, λ”•μ…”λ„ˆλ¦¬μ— λ‹¬λ €μžˆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€) μŠ€λ ˆλ“œ κ°„ 데이터λ₯Ό ν†΅μ‹ ν•˜λŠ” 데 μ„ ν˜Έν•˜λŠ” λ°©λ²•μœΌλ‘œ `queue` λͺ¨λ“ˆμ˜ `Queue` 데이터 νƒ€μž…μ„ μ‚¬μš©ν•˜μ„Έμš”. κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ `threading` λͺ¨λ“ˆμ΄λ‚˜ locking primitivesλ₯Ό μ‚¬μš©ν•˜μ„Έμš”. lower-level lock λŒ€μ‹ ν•΄ Condition variables와 `threading.Condition`λ₯Ό μ„ ν˜Έν•˜μ„Έμš”.

0 commit comments

Comments
Β (0)