我有一个 Python 脚本,它处理一个包含报告使用信息的 .txt 文件。我想找到一种使用 pprint 的 pprint(vars(object)) 函数干净地打印对象属性的方法。
该脚本读取文件并创建 Report 类的实例。这是课程。
class Report(object):
def __init__(self, line, headers):
self.date_added=get_column_by_header(line,headers,"Date Added")
self.user=get_column_by_header(line,headers,"Login ID")
self.report=get_column_by_header(line,headers,"Search/Report Description")
self.price=get_column_by_header(line,headers,"Price")
self.retail_price=get_column_by_header(line,headers,"Retail Price")
def __str__(self):
from pprint import pprint
return str(pprint(vars(self)))
我希望能够干净地打印报告实例 a-la-pprint。
for i,line in enumerate(open(path+file_1,'r')):
line=line.strip().split("|")
if i==0:
headers=line
if i==1:
record=Report(line,headers)
print record
当我打电话
print record
对于 Report 的单个实例,这就是我在 shell 中得到的。
{'date_added': '1/3/2012 14:06',
'price': '0',
'report': 'some_report',
'retail_price': '0.25',
'user': 'some_username'}
None
我的问题有两个。
首先,这是干净地打印对象属性的好/理想方式吗?有没有更好的方法可以使用或不使用 pprint?
二、为什么
None
最后打印到外壳?我很困惑这是从哪里来的。
感谢您的任何提示。