Ich habe eine Matrix
Klasse:Wie tippe ich eine Liste als eigene benutzerdefinierte Matrix-Klasse?
class Matrix(object):
def __init__(self,row,col):
self.row=row
self.col=col
self.matlist=[]
self.create()
def create(self):
for i in range(self.row):
rowlist=[]
for j in range(self.col):
element=input("Enter Row: {} Col: {} : ".format(i+1,j+1))
rowlist.append(element)
self.matlist.append(rowlist)
def __str__(self):
j=str()
for i in range(len(self.matlist)):
for j in range(len(self.matlist[i])):
j+=str(self.matlist[i][j])+" "
j+="\n"
return j
def __add__(self,y):
newmatrix=[]
el1=self.matlist
el2=y.matlist
if (len(el1)==len(el2)) and (len(el1[0])==len(el2[0])):
for i in range(len(el1)):
newlist=[]
for j in range(len(el1[i])):
m=el1[i][j]+el2[i][j]
newlist.append(m)
newmatrix.append(newlist)
return newmatrix
und ich habe zwei Matrix-Objekte erstellt:
m=Matrix(2,2)
n=Matrix(2,2)
und dann füge ich die Matrices:
k=m+n
, die ruft das __add__()
Verfahren die gibt eine list
zurück. Aber ich möchte es als Matrix
Objekt zurückgeben, so dass, wenn ich versuche, es zu drucken, die __str__()
Methode aufgerufen wird und die list
Dosent einfach gedruckt werden. Gibt es eine Möglichkeit, das list
in Matrix
einzugeben?
Wenn Sie eine Matrix wollen, warum erhalten Sie nicht die Methode, um eine zurückzugeben? –
Warum erstellen Sie nicht einfach eine zusätzliche Konstruktormethode, die eine neue Matrix aus einer Eingabeliste erstellt und sie als Rückgabewert der Methode __add__ verwendet? – AArias
@AArias Wie schlage ich vor, dass ich einen zusätzlichen Konstruktor erstelle? –