Python打印类属性时等号无法对齐,如何实现居中对齐?
解决文本等号错位对齐问题
问题根源在于属性名长度不一致,直接拼接打印会导致等号无法对齐。你需要先固定属性名的显示宽度,确保所有属性名占据相同横向空间,后续的等号就能自然对齐。
修改后的代码如下:
from zari import Zari attributes = [a for a in vars(Zari) if not a.startswith('__')] # 获取最长属性名的长度,作为统一宽度基准 max_attr_len = max(len(attr) for attr in attributes) for attribute in attributes: # 左对齐填充属性名到最大长度,再拼接等号与属性值 print(f"{attribute:<{max_attr_len}} = {getattr(Zari, attribute)}")
关键改动说明:
max(len(attr) for attr in attributes):遍历所有属性名,计算出最长属性名的长度,为后续统一宽度提供依据。f"{attribute:<{max_attr_len}}":通过f-string格式化语法,让属性名左对齐并填充空格至max_attr_len长度,保证所有属性名占用相同宽度。- 固定宽度后,后续的等号和属性值会自动排列在同一列,实现对齐效果。
运行修改后的代码,输出会变为:
love = 999999999999999999999999999999999999999999999999999999 smarts = 9 looks = 99999999999999999999999999 humor = 99999999999
内容的提问来源于stack exchange,提问作者vlone
相关产品推荐
相关产品推荐

