0

我有一个接收类实例列表的函数(但有时它可能只是一个无列表类实例),无论它是否是列表,我都想将其打印出来。我知道你可以这样做:

def func(obj):
    if type(obj) == list:
        for o in obj:
            print o
    else:
    print obj 

有没有一种快速、更好的方法来做到这一点,或者这是最干净的方法?

4

5 回答 5

1

我最初使用最简单的 python 代码的想法是:

def func(obj):
    if not isinstance(obj,list):
        obj = [obj]
    for o in obj:
        print o
于 2013-07-24T01:55:47.877 回答
0

如果你打算只给它一个类实例,为什么不把它变成一个单一的项目列表来让一切变得更容易呢?这样,您始终可以将输入作为列表处理

def func(obj):
    for o in obj:
        print o

func([single_class])
func([class_one, class_two, class_n])
于 2013-07-24T01:35:15.763 回答
0

那这个呢??

def func(obj):
    if not isinstance(obj, list):
        obj = [obj]
    map(f, obj)
于 2013-07-24T01:36:03.720 回答
0

出色地...

def func(*obj):
    print(*obj)
于 2013-07-24T01:50:32.257 回答
0
def func(obj):
    return map(some_function,obj) if isinstance(obj,(list,tuple)) else some_function(obj)

也许?对于更好的一些定义

于 2013-07-24T01:21:31.680 回答