Wie man eine Variable erkennt, ist iterabel, aber keine Zeichenfolge
Ich habe eine Funktion, die ein Argument akzeptiert, das entweder ein einzelnes Element oder ein doppeltes Element sein kann:
<code>def iterable(arg) if #arg is an iterable: print "yes" else: print "no" </code>
damit:
>>> iterable( ("f","f") ) yes >>> iterable( ["f","f"] ) yes >>> iterable("ff") no
Das Problem ist, dass die Zeichenfolge technisch iterierbar ist, sodass ich den ValueError beim Versuch nicht einfach abfangen kannarg[1]
. Ich möchte nicht isinstance () verwenden, da dies keine gute Praxis ist (oder wie mir gesagt wird).