【发布时间】:2012-11-04 03:43:37
【问题描述】:
我正在尝试确定函数参数是字符串还是其他可迭代的。具体来说,这用于构建 URL 参数,以尝试模拟 PHP 的 &param[]=val 数组语法 - 所以鸭子类型在这里并没有真正帮助,我可以遍历字符串并生成类似 &param[]=v&param[]=a&param[]=l 的东西,但这是显然不是我们想要的。如果参数值是一个字符串(还是一个字节?我还是不知道一个字节的点到底是什么),它应该产生&param=val,但是如果参数值是(例如)一个列表,每个元素应该收到自己的&param[]=val。我在 2.* 中看到了很多关于如何做到这一点的解释,涉及到 isinstance(foo, basestring),但 basestring 在 3.* 中不存在,而且我还读到 isinstance(foo, str) 会错过更复杂的字符串(我认为是Unicode?)。那么,在不导致某些类型因不必要的错误而丢失的情况下,最好的方法是什么?
【问题讨论】:
标签: python python-3.x python-3.3