0

我在 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):

到处测试?

4

1 回答 1

1

在方法开始时,使用鸭子类型对输入进行一次标准化。

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
于 2012-12-17T18:14:49.420 回答