Сегодня я имел странные ошибки при выполнении How to get all possible combinations of a list’s elements? решения Дэн H. Я получаю эту ошибку:Itertools не отозван
TypeError: 'itertools.combinations' object is not callable
Кто-нибудь знает, почему это и как это можно исправить? Я использую следующий код:
def all_subsets(ss):
return chain(*map(lambda x: combinations(ss, x), range(0, len(ss)+1)))
for subset in all_subsets([1,2,3,4]):
После этого я получаю сообщение об ошибке. Может кто-нибудь мне помочь?
EDIT1:
Люди просили полный код, так вот некоторые Применимое часть ошибки кода:
from scapy.all import *
import itertools
from itertools import *
def all_combinations(input):
return chain(*map(lambda y: combinations(input, y), range(0, len(input)+1)))
extensionHeader=["IPv6ExtHdrHopByHop","IPv6ExtHdrRouting","IPv6ExtHdrDestOpt","IPv6ExtHdrFragment"]
ip=IPv6(src="2a00:1450:4009:807::1002", dst="2a00:1450:4009:807::1002")
combinations = itertools.combinations(extensionHeader, 1)
for subset in all_combinations(extensionHeader):
index=0
finalForm=""
while index<len(subset):
substring=subset[index:index+17]
if substring is "IPv6ExtHdrRouting":
if index==0:
ip.nh=43
Также здесь полная ошибка:
WARNING: No route found for IPv6 destination :: (no default route?)
Traceback (most recent call last):
File "C:\Users\Martinooos\workspace\testing\scapyTest.py", line 18, in <module
>
for subset in all_combinations(extensionHeader):
File "C:\Users\Martinooos\workspace\testing\scapyTest.py", line 11, in all_com
binations
return chain(*map(lambda y: combinations(input, y), range(0, len(input)+1)))
File "C:\Users\Martinooos\workspace\testing\scapyTest.py", line 11, in <lambda
>
return chain(*map(lambda y: combinations(input, y), range(0, len(input)+1)))
TypeError: 'itertools.combinations' object is not callable
Как ваш код продолжается? Я мог бы воспроизвести ту же ошибку с этим кодом: 'комбинации (range (3), 2) (3) -> TypeError: объект itertools.combinations 'не вызываем'. Невозможно вызвать объект комбинации. Вы можете только перебирать его или применять к нему что-то вроде list(). – sjakobi
Можете ли вы опубликовать полную трассировку стека? – user2357112
Этот код работает для меня. Вы уверены, что случайно не использовали имя «комбинации» для чего-то еще и заменили «комбинации», импортированные из «цепочки»? – user2357112