【问题标题】:Changing printing in classes在课堂上更改打印
【发布时间】:2016-05-06 14:08:34
【问题描述】:

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

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 中频; 4 2 英寸 如果我尝试打印它,它会返回:

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 中尝试它,它只会像我想要的那样打印它。 希望你能帮助我,...一如既往=^)。感谢阅读。

【问题讨论】:

  • 大声笑没有。这是由于复制粘贴造成的。
  • 好吧,这不是您正在运行的代码,因为执行print(BellFord('whatever')) 会触发错误__str__ returned non-string (type list)
  • 不,它正是我正在运行的代码,它返回 <__main__.bellford object at>。
  • 好吧,你要编辑你的问题来解决它吗?
  • @Selcuk 识别不是我的问题。发生这种情况是因为复制粘贴它并提交问题而不忽略它。

标签: python string class printing


【解决方案1】:

您遇到了缩进问题。将 def Edges 上的所有内容移回一级。

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 2021-10-29
    • 2017-04-03
    • 2020-12-20
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多