def reverse(data):
for index in range(0,len(data),1):
#return data[index];
yield data[index];
for char in reverse('golf'):
print(char);
#help(range);
#위 함수를 설명 하겠습니다. 위 함수에서 yield 랑 return 이랑 차이점을 말씀드리겟습니다 .
# yield 같은 경우에는 함수가 끝날때 메모리를 정리 하지 않지 습니다 .
#그래서 문자열이 출력되게 됩니다. 하지만 return 을 사용핡경우 같은 한 글자만 출력 되겠죠? ㅎㅎ
def abc():
data = "abc"
for char in data:
yield char;
#return char;
it = iter(abc());
print(next(it));
print(next(it));
이 경우에는 yield 대신 return 을 사용할 경우에는
2번째 print 에서 오류가 발생 하겠죠?
그 이유는 함수를 정리 했기 때문이죠
음 C 언어 같은 경우에는 cdecl call stdcall 같은 경우에 각각 다르게 정리하죠 ㅎㅎㅎ
a = [1,2,3,4,5,6,7,8,9,10];
print(sum(a));
b = (i for i in range(11))
# 이 부분 같은 경우에는 제너레이터 를 이용하여 i 값을 가져 오고 있다 .
# c 언어로 생각하면 포인터 같은 역할을 하는것 같은 생각이 드네요 ^^;;
print(next(b));
print(next(b));
'Soft Ware > python' 카테고리의 다른 글
파이썬 class 에서의 self 이놈에 대해 정의 (0) | 2012.03.12 |
---|---|
enumerate 에 대해서 ~~~ (0) | 2012.03.10 |
이터레이터 (0) | 2012.03.10 |
함수 ~~ (0) | 2012.03.10 |
간단한 문제 풀기 (0) | 2012.03.05 |