我在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):
到处测试?
答案 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