它是在一个类函数中设置的,变量如下。
Season_1 = AHS('yada', 'yada', 'yada')
Season_2 = AHS('yada', 'yada', 'yada')
Etc... Through 9 seasons.我不明白的是,如何设置一个print方法来打印所有这些内容,而不是
Print(season_1.yada)
Print(season_2.yada)我能做些什么来让它变得更简单?enter link description here这里是一个更好的上下文的链接。我是python和堆栈新手,很抱歉:/
发布于 2019-10-11 20:39:05
您需要定义一个接受季节列表的函数:
def print_yada(seasons):
for s in seasons:
print(s.yada)
print_yada([season_1, season_2])正如注释中提到的,从列表开始,而不是从一堆编号的变量名开始。
seasons = [
AHS('yada', 'yada', 'yada'),
AHS('yada', 'yada', 'yada'),
AHS('yada', 'yada', 'yada')
]
print_yada(seasons)因为您要处理的不是AHS的单个实例,而是它们的集合,所以不会有一个单独的AHS方法可以做到这一点。
发布于 2019-10-11 20:39:15
我建议将你的季节放在一个列表中,而不是单独的变量
seasons = [AHS('foo'), AHS('bar'), ...]然后你可以遍历它们
for season in seasons:
print(season.yada)发布于 2019-10-11 21:13:20
正如其他人所说,您可能需要一个实际的列表,如果它在内置Python集合的成员上提供了任何功能,那么很可能是在您的类中。如果没有,你就不需要一个类。
另一方面,如果"yada“、"yada”、"yada“实际上是定义您的类是什么的固定成员,并且您基本上是在寻找一种打印此类对象的方法,那么您可以定义您的类的__str__成员方法来为您的对象创建一种可读的输出格式,最好引用它们的成员。
__str__()应该返回一个字符串,当您的类的对象被转换为一个对象时,例如打印时,将使用该字符串。除了强制实例参数外,它没有其他参数。例如:
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
https://stackoverflow.com/questions/58341412
复制相似问题