动态处理python字符串或列表

sun*_*nny 2 python

numberofrow,其值在表单字段中动态设置.

现在,因为numberofrow在多个表中,当我从表单中收到该变量时,

如果只有一个numerofrow,它的一个字符串,例如.numberofrow = 01

如果不止一个numberofrow,它是一个列表,例如.numberofrow = [01,02,04]

现在我如何区分我的python代码中的列表或字符串?

我正在考虑使用,

if type(numberofrow).__name__=='list':
    #do this
else:
    #do this
Run Code Online (Sandbox Code Playgroud)

谢谢,Sunny.

tux*_*21b 5

为此,有一个名为isinstance的内置版本.您可以使用它来检查对象是否是该类的实例(并且与您的解决方案相比,此测试中也考虑了超类).

if isinstance(numberofrow, list):
    # do this
else:
    # do that
Run Code Online (Sandbox Code Playgroud)

做类似的事情很常见isinstance(numberofrow, basestring).basestring是Python 2中两种字符串类型的超类 - str和unicode - 测试将匹配它们.

或者,您也可以提供可能的类/类型的元组isinstance(numberofrow, (list, tuple)).如果实例是列表或元组的实例,则此测试将成功.