在课堂上更改打印

时间:2016-05-06 14:08:34

标签: python string class printing

我需要帮助,因为我不知道该怎么做:

class BellFord():
    def __init__(self, string = ' '):
        self.adjM = [[entry for entry in rows.split(' ')] for rows in \
                 string.split('; ')]
        self.rows = len(self.adjM)
    def Edges(self):
        A, Edges = self.adjM, []
        for i in range(self.rows):
            for j in range(self.rows):
                if i != j and A[i][j] != 'inf':
                    Edges.append((i, j))
        return dict(Edges)
    def __repr__(self):
        return self.adjM
    def __str__(self):
        return self.adjM

问题是我的输入是一个字符串,看起来像这样: inf -1 inf; 6 inf inf; 4 2 inf 如果我尝试打印它,它会返回:

string = 'inf -1 inf; 6 inf inf; 4 2 inf'
print(BellFord(string))
<__main__.BellFord object at 0x84704FD>

我希望它返回

[['inf', '-1', 'inf'], ['6', 'inf', 'inf'], ['4', '2', 'inf']]

如果我在我的shell中尝试使用它,那么它就像我想要的那样打印它。 希望你可以帮助我,......一如既往= ^)。谢谢你的阅读。

1 个答案:

答案 0 :(得分:1)

你有缩进问题。将所有内容从def Edges开始向后移动一级。