【发布时间】:2018-05-28 10:54:49
【问题描述】:
目前,如果我输入x = Matrix([[5, 4], [3, 8]]),它正在调用__str__。我如何让它用这个输入调用另一个方法?
class Matrix(object):
def __init__(self, matrix = 0):
self.matrix = matrix
def __Matrix__(self):
return 10
def __str__(self):
return "\\n".join(["\\t".join
(["%d" % k for k in row]) for row in self.matrix])
如果我的输入是x = Matrix([[5, 4], [3, 8]]),我如何告诉程序调用方法__Matrix__?它目前正在调用__str__。
我试图在“Matrix”类中创建一个“Matrix”方法,但程序没有改变,它继续使用__str__ 方法。
【问题讨论】:
-
在询问之前先搜索stackoverflow.com/questions/7022211/… 在矩阵内部我只看到一个返回,请在进入 self/__methods 等之前重新学习 python 基础知识或以清晰的方式给我们代码、输入和预期输出我们可以为您提供帮助。
-
我知道如何将输入的数字转换为数组/矩阵。我试图理解的是为什么程序一直使用 __ str __ 而不是使用 __ Matrix __ (并做它里面的任何事情)。
-
因为 str 是内置的,甚至没有调用矩阵?
-
Python 应该如何知道它应该使用您的
__Matrix__方法来打印 Matrix 实例? FWIW,Python 提供了 3 种创建字符串表示的特殊方法:__str__、__repr__和__format__。您可以在Basic customization 中了解它们。顺便说一句,你的__str__有点奇怪。为什么你有"\\n"和"\\t"而不是"\n"和"\t"? -
这不是常规的 __ str __,我需要字符串的格式为 1\t2\n\4\t5。
标签: python