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

时间:2019-10-11 12:35:43

标签: python

它是在具有此类变量的类函数中设置的。

Season_1 = AHS('yada', 'yada', 'yada')
Season_2 = AHS('yada', 'yada', 'yada')
Etc... Through 9 seasons.

我不知道如何设置打印方法以全部打印出来,而不是

Print(season_1.yada)
Print(season_2.yada)

如何使它变得更简单? enter link description here此处是用于获得更好上下文的链接。我是python,为此感到很抱歉:/

3 个答案:

答案 0 :(得分:0)

您需要定义一个包含季节列表的函数:

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的单个 instance ,而是一个他们。

答案 1 :(得分:0)

我建议将您的季节而不是单个变量放在列表中

seasons = [AHS('foo'), AHS('bar'), ...]

然后您就可以遍历它们

for season in seasons:
    print(season.yada)

答案 2 :(得分:0)

就像其他人所说的,如果它在成员上提供了内置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