반응형
이터레이터(iterator): 반복 가능한 객체
이터레이션: 반복 가능한 객체에서 해당 값을 가져오는 행위
iter 함수 : list나 dict를 이터레이터로 만들어주는 함수
제너레이터: 이터레이터를 만들어 주는 것
왜 제너레이터를 사용하는 가? 메모리 효율적 사용을 위해
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import sys
>>>
>>> a=[i for i in range(100)if i %2]
>>> b=(i for i in range(100)if i %2)
>>>
>>> type(a)
<class 'list'>
>>> type(b)
<class 'generator'>
>>> sys.getsizeof(a)
528
>>> sys.getsizeof(b)
88
>>> aa=[i for i in range(1000)if i %2]
>>> bb=(i for i in range(1000)if i %2)
>>> sys.getsizeof(aa)
4272
>>> sys.getsizeof(bb)
88
>>> sys.getsizeof([i for i in range(100)if i %2])
528
>>> sys.getsizeof((i for i in range(100)if i %2))
88
>>> sys.getsizeof([i for i in range(1000)if i %2])
4272
>>> sys.getsizeof((i for i in range(1000)if i %2))
88
>>> class Star:
def __init__(self):
self.name="없음"
self.age=0
print("생성자")
def __del__(self):
print("소멸자")
def Disp(self):
print(__name__)
>>> def sub():
s1=Star()
>>> sub()
생성자
소멸자
>>>
>>>
>>> class Star:
def __init__(self,name,age):
self.name=name
self.age=age
print("생성자")
def __del__(self):
print("소멸자")
def Disp(self):
print(__name__)
print("name=",self.name,"age=",self.age)
>>> def sub():
s1=Star("송혜교",35)
s1.Disp()
>>> sub()
생성자
__main__
name= 송혜교 age= 35
소멸자
>>>
반응형
'Program > Python' 카테고리의 다른 글
가상 환경을 사용한 Python 설치 - Virtualenv, autoenv (0) | 2017.10.28 |
---|---|
python 토근처리 (0) | 2017.10.27 |
파이썬 제너레이터 generator (0) | 2017.10.23 |
파이썬 이터레이터 iterator (0) | 2017.10.23 |
MongoDB 에 데이터 저장하고 불러오기 (0) | 2017.10.02 |