-1
私はMatrix
クラスがあります。リストを自分のカスタムMatrixクラスとして型変換する方法は?
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
をし、私は2つの行列オブジェクトを作成しました:
m=Matrix(2,2)
n=Matrix(2,2)
をしてから、私は行列を追加します。
た
__add__()
メソッドを呼び出します
k=m+n
list
を返します。しかし、それをMatrix
オブジェクトとして返すようにして、印刷しようとすると__str__()
メソッドが呼び出され、list
が表示されます。 list
をMatrix
に型キャストする方法はありますか?
マトリックスが必要な場合、そのメソッドを返すのはなぜですか? –
入力リストから新しい行列を作成する追加のコンストラクタメソッドを作成し、それを__add__メソッドの戻り値として使用するだけではどうですか。 – AArias
@AArias私は追加コンストラクタを作成する方法を提案しますか? –