【发布时间】:2014-01-17 09:55:48
【问题描述】:
我有一个有几个属性的类:
class Fighter():
def __init__(self, name = "", gender = "", age = 0, weight = 0, win = 0, loss = 0, ko = 0, date = ""):
self.__name = name
self.__age = age
self.__weight = weight
self.__win = win
self.__loss = loss
self.__ko = ko
self.__date = date
从我的程序的用户端,使用以下行在循环中创建一个对象并将其存储在一个列表中:
s = Fighter(name, gender, age, weight, wins, losses, ko, time)
collection.append(s)
我可以按一些属性(例如姓名、体重等)对这个列表进行排序,而且效果很好。我在类中也有返回特定属性值的实例方法,例如:
def fighter_age(self):
return str(self.__age)
我的问题是,如何将这些信息打印为一个有组织的表格,每个属性都有一个列,例如:
-----------------------------------------------------------------------
|Fighter Number|Name |Age |Weight |Wins|Losses|Date Added |
|1 |Anderson Silva|39 |185 |33 | 6 |2014-01-17 |
【问题讨论】:
-
关键问题是找到每列的正确宽度:您应该准备数据并执行第一个循环以找到每列的最大宽度(有限制,以避免超长字符串)和然后再次循环并打印
-
如果打印不是那么重要,您是否考虑过以 csv 或 Excel 格式导出?
-
编码提示:避免使用 __ 前缀,因为它们会导致“奇怪”行为(有关编码风格,请参阅 python.org/dev/peps/pep-0008)
标签: python arrays list sorting object