我有一个例程,它将字符串列表作为参数,但是我想支持传递单个字符串并将其转换为一个字符串列表。例如:
def func( files ): for f in files: doSomethingWithFile( f ) func( ['file1','file2','file3'] ) func( 'file1' ) # should be treated like ['file1']
我的函数如何判断是否传入了字符串或列表?我知道有一个type函数,但是有“更pythonic”的方式吗?
type
好吧,检查类型并没有什么异常。话虽如此,如果您愿意给来电者带来一点负担:
def func( *files ): for f in files: doSomethingWithFile( f ) func( *['file1','file2','file3'] ) #Is treated like func('file1','file2','file3') func( 'file1' )
我认为这比“隐式的要好于隐式的”更具Python风格。当输入已经是列表形式时,在此至少在调用方方面存在识别。