这是我的尝试:
def convert(data):
if isinstance(data, bytes):
return data.decode('ascii')
elif isinstance(data, dict):
return dict(map(convert, data.items()))
elif isinstance(data, tuple):
return map(convert, data)
else:
return data
这可以更好地概括和/或提高易读性吗?
最佳答案
不知道速度优化,但我不是 if/return/else
范式的忠实拥护者,因为它用不必要的东西阻塞了代码并导致没有 elif
的语言的缩进阶梯(这里不是这样的问题)。
优化可读性(这通常是我的第一偏好),我会将所有那些 elif
行变成 if
并抛弃 else
完全,重新格式化以使其更紧凑:
def convert(data):
if isinstance(data, bytes): return data.decode('ascii')
if isinstance(data, dict): return dict(map(convert, data.items()))
if isinstance(data, tuple): return map(convert, data)
return data
关于python - 将由随机嵌套内置类型组成的对象中的所有 'bytes' 转换为 'str',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33137741/