我正在嘗試添加 return 0 以防方程式的最終結果為 None 以防萬一: TypeError: unsupported operand type(s) for *: 'NoneType' and 'decimal.Decimal' 但它對我不起作用。這樣做的原因是沒有。售出數量可以為零,因此它返回類型錯誤。這是功能: def designer_total_discount_price(self): total_sold_discount = self.count_sold * self.discount_price return 0 if total_sold_discount is None else total_sold_discount def designer_total_price(self): total_sold_regular = self.count_sold * self.price return 0 if total_sold_regular is None else total_sold_regular def designer_total(self): if self.discount_price: return self.designer_total_discount_price() return self.designer_total_price() def get_designer_final(self): return self.designer_total() * self.designer_profit
1 回答

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
問題可能self.count_sold在于None。您不能將數字與 相乘None。除了確保self.count_sold始終None可以添加此方法之外:
? ? def get_count_sold(self):
? ? ? ? return 0 if self.count_sold is None else self.count_sold
然后你會換self.count_sold出self.get_count_sold(). 您還可以刪除 return 語句中的 if 語句。所以像這樣:
? ? def designer_total_discount_price(self):
? ? ? ? return self.get_count_sold() * self.discount_price
? ? def designer_total_price(self):
? ? ? ? return self.get_count_sold() * self.price
我希望它有所幫助!:)
添加回答
舉報
0/150
提交
取消