如何設置類變量返回其他數據類型(list或int)?Python - 屬於同一類的變量之間的乘法
所以我有兩個屬於同一個類的變量,我想用這個運算符例如乘以兩個變量,但是不能這樣做,因爲它們都具有類數據類型。
例如:
class Multip:
def __init__(self,x,y):
self.x = x
self.y = y
def __repr__(self):
return "{} x {}".format(self.x, self.y)
def __str__(self):
return "{}".format(self.x*self.y)
def __mul__(self, other):
thisclass = self.x*self.y
otherclass = other
return thisclass * otherclass
a = Multip(5,6)
b = Multip(7,5)
c = a*b
print(c)
這將返回一個錯誤:
TypeError Traceback (most recent call last) in() 14 a = Multip(5,6) 15 b = Multip(7,5) ---> 16 c = a*b 17 print(c)
in mul(self, other) 10 thisclass = self.x*self.y 11 otherclass = other ---> 12 return thisclass * otherclass 13 14 a = Multip(5,6)
TypeError: unsupported operand type(s) for *: 'int' and 'Multip'
因爲你還沒有實現'Multip .__ mul __(self,other)'。 –
另外你的表現有點笨拙;你應該區分值和操作。也許看看SymPy的一些想法? –
@HughBothwell對不起,忘了寫下來。所以我實際上有mul函數,但是因爲其他變量的參數是以類型的形式出現的,所以無法完成。任何想法如何解決? – garjted