在Python中处理字符串,多行字符串和列表的优雅方式

时间:2012-12-17 18:04:31

标签: python string list multiline

我在Python中有一个自定义日志功能,我希望有一种Pythonic方法将输入分成多行。输入可以是字符串,多行字符串或列表。

这适用于字符串和多行字符串,但它不处理列表:

def log( text, indent = 0):
    indent_level = 4
    current_time = str( datetime.datetime.now().time())[0:-3]
    for line in text.splitlines():
        log_line = current_time + ' | ' + indent_level * indent * ' ' + str( line)
        print( log_line)

您建议如何处理没有复杂的

列表
if( type( string) == list):

到处测试?

1 个答案:

答案 0 :(得分:1)

在方法开头使用duck typing来将输入标准化一次。

try:
    # Assume you get multiline text
    lines = text.splitlines()
except AttributeError:
    # If your assumption was wrong, then you should already have a list
    lines = text