기본값 파이썬 폐쇄와 반복자의 함수

# 기본 파라미터 호의 변경 가능한 데이터 형식, 시간인지 기능에있어서, 다른 사람이 너무 변화를보기 위해 자신의 위치를 변경 한 경우. 
DEF 에서 Fn (브로 목록 = []) 
    list.append (브로 ) 
    반환 목록 

인쇄 합니다 (FN (5 ))
 # 우리가 발 것 [5] 수 인쇄 된 결과 값을 전달할 줄이 위치 

인쇄 합니다 (FN (6 )) 

# 우리가 연구 결과의 가치를 전달하는 데 계속이 위치는 [5, 6] 그래서 즉 함수 매개 변수의 디폴트 값은 동일, 그리고 모든 통화 기능 새 기본을 생산
#의 함수 #에서 기본 매개 변수를 변경 가능한 데이터 형식, 다른 사람도 변화를보기 위해 자신의 위치를 변경 한 경우 통화 시간이면. 
# DEF에서 Fn (브로 목록 = []) : 
#의      목록. 추가] (발) 
#의      반환 목록 
#의 
#의 인쇄합니다 (FN (5)) 
#의 # 발에이 위치 우리는 인쇄 된 결과의 값을 전달 할 예정입니다 [5] 
#의 
#의 인쇄합니다 (FN (6)) 

# 우리가 값을 전달하기 위해 계속이 위치 연구 결과는 [5, 6], 그 디폴트 값이 동일한 매개 변수의 함수이다, 그리고 모든 통화 기능 새 기본 생산 



# 폐쇄 및 폐쇄의 실질적인 효과가 무엇 
#을 우리는 함수 선언을 알고 함수가 종료 된 후에 시간이 기억을 회복, 전용 메모리 공간, 파이썬에서 가비지 수집 메커니즘을 열 것이다, 수행되지 않을 때 호출 

데프 을 Fn1 () :  = 100
     인쇄 (발) 
을 Fn1 () 
# 을 Fn1을 수행 한 후이 시간, 그것은 지워집니다 그 메모리에, 그리고 역할의 폐쇄는이 메모리에 상주하는 것입니다 

DEF의 ) (Fn2를을 : = 100
     DEF Fn3 () :
         리턴 발에
     인쇄 (.거나 Fn1 __closure__ )
     전단 (. Fn2를 __closure__ )
     전단 (. Fn3는 __closure__ )
     Fn3의
 전단 (Fn2를 ()) 

#가 __closure__ 함수를 검출하는데 사용될 수있는 폐쇄되지 패키지 
# 없음 
#의 없음 
# (<0x000001366E928B28에있는 셀 : 0x00007FFAD5407D60 공사에서 int 객체가>) fn3이 폐쇄입니다 결과 


# 다음은 파이썬 SRT,리스트, 터플, 딕셔너리에 반복자입니다 설정, 파일, 왜 그들이 그들 프로토콜은 반복 수 따라 유사하므로 반복 가능 객체 

S = " 진실 결론 " 
#을인쇄 (DIR (S)) 
# [ '__add__', '__class__', '__contains__', '__delattr__', '__DIR__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', ' __getitem__ ' 
#   '__getnewargs__ ','__gt__ ','__hash__ ','__init__ ','__init_subclass__ ','__iter__ ','__le__ ','__len__ ','__lt__ ','__mod__ ','__mul__ ','__ne__ ' 
#   '__new__ ','__reduce__ ','__reduce_ex__ ','__repr__ ','__rmod__ ','__rmul__ ','__setattr__ ','__sizeof__ ','__str__ ','__subclasshook__ ','대문자 ' 
#   'casefold ','센터', '수', '인코딩', 'endswith', 'expandtabs', '찾기', '형식', 'format_map', '지수', 'isalnum', 'isalpha에', 'isascii', 'isdecimal ' 
#  'isdigit에', 'isIdentifier과' 'islower와', 'ISNUMERIC', 'isprintable', 'isspace와', 'istitle', 'isupper', '가입', 'ljust ","하부 ","lstrip', 'maketrans ','파티션 ' 
#   '바꾸기 ','rfind ','rindex ','rjust ','rpartition ','rsplit ','rstrip ','분할 ','splitlines ','startsWith ','스트립 ' 'swapcase', '제목', '번역은', '위는' 
#   'zfill는'] 

#은 우리가이 반복자입니다 __iter__ 문자열을 발견하고, 반복자는 반복자입니다 가지고있다` 

#의 인쇄 (디렉터리 (ITER .__ __ S ())) 
#의 [ '는 __class__', '__delattr__', '__DIR__' '는 __doc__', '__eq__ ','__format__ ','__ge__ ','__getattribute__ ','__gt__ ','__hash__ ','__init__ ','__init_subclass__ ', 
#  '는 __iter__', '__le__', '__length_hint__', '__lt__', '__ne__', '__new__은', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__' 
#   ' __sizeof__ ','__str__ ','__subclasshook__ '] 
#은 우리가 실행할 때 그것은 반복자는 반복자가 ITER가 반복 가능 객체입니다 포함 발견 도착 

ITR은 S.을 = __iter__ ()
 # 가져 오기 반복자 
인쇄 (ITR. __next__ () )
 인쇄 (ITR. __next__ ())
 인쇄 (ITR. __next__ ())
 인쇄 (ITR.__next__ ())
 # 사실 
# # 상 
#의 # 설정 
#의 # s의에 
#을  단어가 인쇄 

LST = 1,2,3,4,5 ] 

itr2 = LST. __iter__ () 

전단 (itr2. __Next__ ())
 프린트 (itr2. __Next__ ())
 프린트 (itr2. __Next__ () )
 인쇄 (itr2. __next__ ())
 인쇄 (itr2. __next__ ()) 

#이 LST 반복자를 얻을 nextAPI는 반복적 인 수동 달성 사용하십시오
#을 사용하면서 어떤 반복자 시뮬레이션 
동안 1 :
     은 try : 
        이름 . = itr2 __Next__ ()
         인쇄 (이름)
     제외 대하여 StopIteration :
         BREAK의 
# 거의 JS에서 내결함성 시도 


# 반복자에 대해서도 방법에 판사 여부 
에서 컬렉션 이 .abc 가져 오기 의 Iterable
 에서 collections.abc 가져 오기 반복자 

인쇄 (isinstance (ITR,의 Iterable))
 인쇄 (isinstance (ITR, 반복자)) 

# 사실 
# 사실 
# 그 반복자는 그래서 사실 두 사람은 ITR은 반복 가능 객체입니다 

인쇄(isinstance (LST,의 Iterable))
 인쇄 (isinstance (LST, 반복자)) 

#의 LST가 반복 가능한 것입니다하지만 반복자

 

추천

출처www.cnblogs.com/tengx/p/11671036.html