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).