Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update ch3-generators.md #7

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ch10-slots-magic.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
파이썬에서 모든 클래스들은 인스턴스 속성을 가질 수 있습니다. 기본적으로 파이썬에서는 객체의 인스턴스 속성을 저장하기위해 dict형을 사용합니다.
이는 런타임에 임의의 새 속성을 설정할 수 있으므로 정말 유용합니다

그러나 알려진 속성을 가진 소규모 클래스의 경우 병목 현상이 발생할 수 있습니다. dict형은 메모리를 많이 낭비합니다. 파이썬은 객체 생성시에 모든 속성들을 저장하기 위해 메모리에 고정된 양을 할당할 수 없습니다. 그러므로 많은 양의 객체를 생성 하면 많은 RAM을 낭비하게됩니다. 이 문제를 우회하는 방법이 있습니다. \_\_slots\_\_을 사용해서 파이썬이 dict형을 사용하지 않도록 하고 고정된 속성의 집합에만 메모리를 할당하도록 합니다. 여기 `__slots__` 을 사용한 예제와 사용하지 않은 예제를 살펴보겠습니다.
그러나 알려진 속성을 가진 소규모 클래스의 경우 병목 현상이 발생할 수 있습니다. dict형은 메모리를 많이 사용합니다. 파이썬은 객체 생성시에 모든 속성들을 저장하기 위해 메모리에 고정된 양을 할당할 수 없습니다. 그러므로 많은 양의 객체를 생성 하면 많은 메모리를 낭비하게됩니다. 이 문제를 우회하는 방법이 있습니다. \_\_slots\_\_을 사용해서 파이썬이 dict형을 사용하지 않도록 하고 고정된 속성의 집합에만 메모리를 할당하도록 합니다. 여기 `__slots__` 을 사용한 예제와 사용하지 않은 예제를 살펴보겠습니다.

Without `__slots__`:

Expand All @@ -29,7 +29,7 @@ class MyClass(object):
# ...
```

두 번째 코드는 RAM의 부담을 줄입니다. 어떤 사람은 이 방법을 사용해서 RAM 사용량을 거의 40에서 50% 정도로 줄였습니다.
두 번째 코드는 메모리 사용을 줄입니다. 어떤 사람은 이 방법을 사용해서 메모리 사용량을 거의 40에서 50% 정도로 줄였습니다.

다른 방법으로는 PyPy를 사용해 볼 수도 있습니다. 이러한 모든 최적화 작업을 기본적으로 수행합니다.

Expand Down
4 changes: 2 additions & 2 deletions ch12-Collections.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ print(d[-1])
# Output: '3'
```

deque 양 쪽에서 뺴낼 수도\(pop\) 있습니다.
deque 양 쪽에서 빼낼 수도\(pop\) 있습니다.

```python
d = deque([i for i in ranges(5)])
Expand Down Expand Up @@ -229,7 +229,7 @@ print(perry.name)
# Output: 'perry'
```

위에서 볼 수 있듯이 "."연산자를 사용하여 이름만으로 튜플의 멤버에 액세스 할 수 있음 을 알 수 있습니다. 좀 더 살펴보겠습니다. 네임튜플은 인자 두개를 필요로 합니다. 튜플의 `이름`과 튜플의 `필드 이름` 이죠. 위 예시에서 튜플의 `이름`은 'Animal'이고, 튜플의 `field_names`은 'name', 'age', 'cat'입니다. 네임튜플은 튜플들을 _자가문서화\(self-document\)_ 시킵니다. 예시 코드를 잘 보면 무슨 일이 일어나는지 쉽게 이해될 것입니다.
위에서 볼 수 있듯이 "."연산자를 사용하여 이름만으로 튜플의 멤버에 액세스 가능합니다. 좀 더 살펴보겠습니다. 네임튜플은 인자 두개를 필요로 합니다. 튜플의 `이름`과 튜플의 `필드 이름` 이죠. 위 예시에서 튜플의 `이름`은 'Animal'이고, 튜플의 `field_names`은 'name', 'age', 'cat'입니다. 네임튜플은 튜플들을 _자가문서화\(self-document\)_ 시킵니다. 예시 코드를 잘 보면 무슨 일이 일어나는지 쉽게 이해될 것입니다.  
튜플의 멤버에 액세스하기 위해 정수 인덱스를 사용할 필요가 없으므로 코드를 유지 관리하기가 더 쉽습니다. 게다가, _**"네임튜플" 인스턴스는 인스턴스당 사전들을 가지지 않으므로**_, 일반 튜플보다 더 가볍고 메모리 사용량을 줄일 수 있습니다. 그래서 사전형보다도 더 빠릅니다. 그러나 튜플이기 때문에 _**네임튜플의 속성들은 불변**임을_을 명심해야합니다. 아래와 같이 실행될 수 없습니다.

```python
Expand Down
2 changes: 1 addition & 1 deletion ch13-Enumerate.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 13. Enumerate

Enumerate\(열거\)은 파이선의 내장함수 입니다. 열거형의 유용성은 한줄로 요약할 수 없습니다. 그러나 대부분의 파이썬 입문자들나 심지어 중고급 개발자들도 잘 모르는 함수입니다. 그것은 우리가 무언가를 반복하고 자동 카운터를 가질 수있게 해줍니다. 예시를 보도록 하겠습니다.
Enumerate\(열거\)은 파이썬의 내장함수 입니다. 열거형의 유용성은 한줄로 요약할 수 없습니다. 그러나 대부분의 파이썬 입문자들나 심지어 중고급 개발자들도 잘 모르는 함수입니다. 그것은 우리가 무언가를 반복하고 자동 카운터를 가질 수있게 해줍니다. 예시를 보도록 하겠습니다.

```python
for counter, value in enumerate(some_list):
Expand Down
2 changes: 1 addition & 1 deletion ch16-Exceptions.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,5 +86,5 @@ finally:
# 모든 케이스에서 실행됩니다.
```

이 `else`문은 에외가 없을 경우에만 실행되고, `finally`문이 실행되기 이전에 실행됩니다.
이 `else`문은 예외가 없을 경우에만 실행되고, `finally`문이 실행되기 이전에 실행됩니다.

2 changes: 1 addition & 1 deletion ch2-debugging.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import pdb

def make_bread():
pdb.set_trace()
return "시간이 없어!"
return "시간이 없어!"

print(make_bread())
```
Expand Down
2 changes: 1 addition & 1 deletion ch3-generators.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ _\(역자 주: 이터레이터는 반복자등의 형태로 번역되어 쓰이

* 반복가능한 객체 \(Iterable\)
* 반복자\(Iterator\)
* 반복\(Itreation\)
* 반복\(Iteration\)

위 세 부분은 서로 연결되어 있습니다. 하나씩 먼저 설명하고 난 후에 제너레이터에 대해서 이야기 해보겠습니다.

Expand Down
4 changes: 2 additions & 2 deletions ch9-Mutation.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ add_to(3)
def add_to(element, target=None):
if target is None:
target = []
target.append(element)
return target
target.append(element)
return target
```

이제는 `target`인자 없이 함수를 호출 하더라도 새로운 리스트가 생성됩니다. 예를 들어 보겠습니다.
Expand Down