Tenho uma função que recebe um argumento que pode ser um item único ou um item duplo:
def iterable(arg)
if #arg is an iterable:
print "yes"
else:
print "no"
de modo a:
>>> iterável (("f", "f"))
sim
>>> iterável (["f", "f"])
sim
>>> iterável ("ff")
não
O problema é que a string é tecnicamente iterável, então não posso simplesmente capturar o ValueError ao tentar arg[1]. Não quero usar isinstance (), porque essa não é uma boa prática (ou pelo menos foi o que me disseram).