나는 라이브러리와 함께 일하고 있으며, primarilly 특정 오브젝트를 사용하여 X 타입이라고 말할 수있는 라이브러리를 가지고있다.이 라이브러리는 XList와 같은 커스텀 컨테이너를 제공한다.이 컨테이너는 대부분리스트처럼 동작하는 것으로 보인다.왜 일부 파이썬 개체는 표준 파이썬 목록에 들어가는 것을 거부합니까?
내가 수행 할 때 다음과 같은 것이 나타납니다
xl = makeXList(...)
l = []
for x in xl:
print repr(x)
l.append(x)
결과 "L"이 빈 목록입니다. 그럼에도 불구하고 x의 파리가 std에서 빠져 나가는 것을 보았습니다. 그래서 그들은 진정으로 반복자가되고 있음을 알고 있습니다. 나는 똑같이 반복하지만, x를 [1,2,3]으로 바꾸면 나는 [1,2,3]이된다. 뭐라 구요?
X 유형의 인스턴스가 일반 파이썬 목록에 들어가기를 거부 할 수있는 방법이 있습니까? 아니면 예상대로 작동하지 않을 수도있는 양심적 인, 새롭다는 이유가 있습니까?이 작업을 수행하는 메커니즘은 무엇입니까? 이것은 파이썬 라이브러리 제작자가 공통적으로 의도 한 일입니까? 이 라이브러리에 대한 문서는 드물게 나타나며 예제 중 일부는 보통 파이썬 목록 인 X가 다소 이상하게 보입니다.
문제는
문제의 라이브러리 scapy입니다
것이었다. scapy가 rdpcap을 사용할 때 조작 된 패킷을 만나서 pcap에서 잘못된 패킷을 읽을 때 PacketList-> python 목록으로 변환하는 것을 거부합니다. scapy가 변형되지 않은 패킷을 처리 할 때 위의 코드가 올바르게 작동합니다.
더 많은 코드를 게시하십시오. 너는 너무 일반적이다. 어쩌면 통역사 입력과 출력도 게시 할 수 있습니까? –
우리가 테스트 할 수있는 것이 도움이 될 것입니다 ... – FakeRainBrigand
'xl'이 비어 있지 않습니까? – cheeken