python - 我怎样才能打印出来,以便每个实例的属性都在一行上?
问题描述
我最近在我的教堂里接到了一个电话,我正在尝试编写一个小程序来帮助我跟踪一些任务。我已经编写了一些类代码,它会打印出来,但我希望这些细节中的每一个都打印在自己的行上或带有开销描述。我不确定如何格式化。这是代码。
class Ministers:
def __init__(self, last, first, middle, phone, email, district,
districtPresident, partner, interviewed, dateOfInterview):
self.last = last
self.first = first
self.middle = middle
self.phone = phone
self.email = email
self.district = district
self.districtPresident = districtPresident
self.partner = partner
self.interviewed = interviewed
self.dateOfInterview = dateOfInterview
def info(self):
return '{} {} {} {} {} {} {} {} {} {}'.format(self.last, self.first,
self.middle, self.phone, self.email, self.district,
self.districtPresident, self.partner, self.interviewed,
self.dateOfInterview)
minister_1 = Ministers('Arthur', 'Leslie', 'Brainard', 'unknown', 'unknown',
'Central', 'Sean D. Burnham', 'Ben Pearson', 'n/a','n/a')
print(Ministers.info(minister_1))
当我这样做的时候,我不妨问一下:把这么多属性放到一个类实例中是一种传统的做事方式吗?我应该用不同的方式写这个吗?显然我是新手。
代码打印如下:
姓氏 名字 中间名等
我希望它像这样打印:
姓氏
名字
中间名
等
解决方案
实现输出的一种更短的方法(仅适用于 Python 3.7+,因为 dicts 保证在此处插入排序):
def info(self):
return '\n'.join(self.__dict__.values())
就个人而言,我会摆脱 info 功能,因为这个__str__
dunder 方法专门为此目的而存在。因此,当您将功能替换为:
def __str__(self):
return '\n'.join(self.__dict__.values())
您可以简单地查看您的Minister
with实例print(minister_1)
。
推荐阅读
- r - 如何删除R中的某些记录
- vuejs2 - 如何模拟从已安装的生命周期方法触发的异步方法?
- javascript - 谷歌图表更改各个直方图数据点的颜色
- sql - 执行函数时 PL/SQL Oracle 包错误
- angular - 如何从数组中为Angular中的表单创建动态名称?
- training-data - 如何将 PASCAL VOC 转换为 YOLO
- java - 从用户那里获取 6 位输入并将每个数字存储在 Java 中的单个数组中
- angular - Angular - 项目内容到另一个组件
- ios - SwiftUI XCTest 如何访问 ScrollView 子项?
- android - Kotlin 中布局的可见性