首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义了Python类,定义了所有内容,但我想不出一个print方法来将其全部打印出来

定义了Python类,定义了所有内容,但我想不出一个print方法来将其全部打印出来
EN

Stack Overflow用户
提问于 2019-10-11 20:35:43
回答 3查看 39关注 0票数 0

它是在一个类函数中设置的,变量如下。

代码语言:javascript
复制
Season_1 = AHS('yada', 'yada', 'yada')
Season_2 = AHS('yada', 'yada', 'yada')
Etc... Through 9 seasons.

我不明白的是,如何设置一个print方法来打印所有这些内容,而不是

代码语言:javascript
复制
Print(season_1.yada)
Print(season_2.yada)

我能做些什么来让它变得更简单?enter link description here这里是一个更好的上下文的链接。我是python和堆栈新手,很抱歉:/

EN

回答 3

Stack Overflow用户

发布于 2019-10-11 20:39:05

您需要定义一个接受季节列表的函数:

代码语言:javascript
复制
def print_yada(seasons):
    for s in seasons:
        print(s.yada)

print_yada([season_1, season_2])

正如注释中提到的,从列表开始,而不是从一堆编号的变量名开始。

代码语言:javascript
复制
seasons = [
    AHS('yada', 'yada', 'yada'),
    AHS('yada', 'yada', 'yada'),
    AHS('yada', 'yada', 'yada')
]
print_yada(seasons)

因为您要处理的不是AHS的单个实例,而是它们的集合,所以不会有一个单独的AHS方法可以做到这一点。

票数 0
EN

Stack Overflow用户

发布于 2019-10-11 20:39:15

我建议将你的季节放在一个列表中,而不是单独的变量

代码语言:javascript
复制
seasons = [AHS('foo'), AHS('bar'), ...]

然后你可以遍历它们

代码语言:javascript
复制
for season in seasons:
    print(season.yada)
票数 0
EN

Stack Overflow用户

发布于 2019-10-11 21:13:20

正如其他人所说,您可能需要一个实际的列表,如果它在内置Python集合的成员上提供了任何功能,那么很可能是在您的类中。如果没有,你就不需要一个类。

另一方面,如果"yada“、"yada”、"yada“实际上是定义您的类是什么的固定成员,并且您基本上是在寻找一种打印此类对象的方法,那么您可以定义您的类的__str__成员方法来为您的对象创建一种可读的输出格式,最好引用它们的成员。

__str__()应该返回一个字符串,当您的类的对象被转换为一个对象时,例如打印时,将使用该字符串。除了强制实例参数外,它没有其他参数。例如:

代码语言:javascript
复制
class MyClass:
    def __init__(self, a, b):
        self.a, self.b = (a, b)

    def __str__(self):
        return f"My members are: {self.a}, {self.b}"

print(MyClass(3, "abc"))

我的成员是: 3,abc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58341412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档