jak powiedzieć zmienną jest iterowalny, ale nie łańcuch

Mam funkcję, która przyjmuje argument, który może być pojedynczym przedmiotem lub podwójnym przedmiotem:

<code>def iterable(arg)
    if #arg is an iterable:
        print "yes"
    else:
        print "no"
</code>

po to aby:

>>> iterable( ("f","f") )
yes

>>> iterable( ["f","f"] )
yes

>>> iterable("ff")
no

Problem polega na tym, że łańcuch jest technicznie powtarzalny, więc nie mogę po prostu złapać ValueError podczas próbyarg[1]. Nie chcę używać isinstance (), ponieważ nie jest to dobra praktyka (tak mi się mówi).

questionAnswers(7)

yourAnswerToTheQuestion