목록이있는 회원이 csv.reader 개체가 아닌지 확인하면 결과가 달라집니다. 아래는 unittest 모듈을 사용합니다. 회원목록 및 csv.reader와 회원 테스트 결과가 다릅니다
with open("file.tab", 'rb') as f:
reader = csv.reader(f, delimiter='\t')
reader = [record for record in reader]
self.assertTrue(['1', '2', '3', '4'] in reader)
self.assertTrue(['2', '3', '4', '5'] in reader)
self.assertTrue(['3', '4', '5', '6'] in reader)
에 대한 회원에 대한
csv.reader 테스트
with open("file.tab", 'rb') as f:
reader = csv.reader(f, delimiter='\t')
self.assertTrue(['1', '2', '3', '4'] in reader)
self.assertTrue(['2', '3', '4', '5'] in reader)
self.assertTrue(['3', '4', '5', '6'] in reader)
목록 테스트 나는 file.tab 난을 테스트하고있어 세 가지 기록에 대한 항목이 포함되어 알고 있지만, 세 번째 어설 csv.reader를 사용할 때 "거짓은 사실이 아닙니다"라는 메시지가 나오고 목록을 사용할 때 전달됩니다.
csv.reader는 생성자입니다. docs은 명시 적으로 말하지 않지만, 소모 할 수 있기 때문에 그것이 생성기라는 것을 의미한다고 생각합니다. 내 생각이 이유가 될 수도 있습니다,하지만 다음과 같은 시험 인쇄 아무것도하지만 사실 : 나를 발전기와 회원에 대한 문제 테스트가 없다는 것을 생각하게
x = xrange(5)
for m in range(5):
for n in range(5):
print m in x
print n in x
.
목록을 사용할 때보 다 csv.reader를 사용할 때 세 번째 어설트 문이 다르게 평가되는 이유는 무엇입니까?
'독자 = [기록은 독자의 레코드]'독자'로 쓸 수있다 = 목록 (csv.reader (f, delimiter = '\ t'))'와 마찬가지로 그냥 –
'xrange' 실제로 [불변의 순서] (http://docs.python.org/2/library/stdtypes.html)를 반환합니다. # typesseq-xrange), 발전기가 아닙니다. – poke