如何将其打印出来,以便每个实例的属性都在一行上?

问题描述 投票:-1回答:4

我最近在教堂接到电话,我正在写一个小程序来帮助我跟踪一些任务。我已经编写了一些类代码,并打印出来,但我希望每个细节都可以在自己的行上打印,也可以用开销描述打印。我不知道如何格式化。这是代码。

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 python-3.x
4个回答
1
投票

实现输出的一种较短方式(仅适用于Python 3.7+,因为保证在此处排序插入):

def info(self):
    return '\n'.join(self.__dict__.values())

就个人而言,我会摆脱信息功能,因为__str__ dunder方法专门用于此目的。所以当你用以下函数替换你的函数:

def __str__(self):
    return '\n'.join(self.__dict__.values())

你可以用Minister查看你的print(minister_1)实例。


0
投票

只需将格式字符串切换为换行符而不是空格,即将'{} {} {} {} {} {} {} {} {} {}'替换为'{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}'


0
投票

您可以使用格式选项,如下所示:

$
f'{variable1}\n{variable2}.....'
$

而且您不需要将格式放在最后

你也可以在字典中统一你的属性,这样你就可以同时调用所有的属性。


0
投票

也许不是解决问题的最优雅的方法,但是对你的回归的以下改变将会成功。 “\ n”是一个新的换行符。

返回'{} \ n {} \ n {} \ n {} \ n {} \ n {} \ n {} \ n {} \ n {} \ n {}'。format(self.last,self。第一,

© www.soinside.com 2019 - 2024. All rights reserved.