亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 中自定義類的字符串格式

Python 中自定義類的字符串格式

牛魔王的故事 2021-10-26 18:22:07
我IntegerMod為整數模一個素數編寫了一個自定義類。一切正常。然后將它們用作用 構建的多項式的系數numpy.poly1d,并設法實現足夠的方法,IntegerMod以便對這些多項式的操作按我的需要工作(例如,找到給定一堆點的插值多項式)。只剩下一點細節,那就是print(pol)那些多項式實際上失敗了,因為 Python 嘗試對%g系數使用字符串格式,但未能說明IntegerMod應該是字符串還是數字。實際上IntegerMod繼承自numbers.Number,但似乎還不夠。我的問題是,我可以在我的班級中實現字符串格式的行為嗎?如果沒有,我應該如何處理這個問題?產生錯誤的 MWE:import numbersimport numpy as npclass IntegerMod(numbers.Number):    def __init__(self, k, p):        self.k = k % p        self.p = p    def __repr__(self):        return "<%d (%d)>" % (self.k, self.p)if __name__ == "__main__":    p = 13    coef1 = IntegerMod(2, p)    coef2 = IntegerMod(4, p)    print(coef1)  # Works as expected    pol = np.poly1d([coef1, coef2])    print(pol)    """ # error:        s = '%.4g' % q        TypeError: float() argument must be a string or a number, not 'IntegerMod'    """
查看完整描述

1 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

也許您應該實現該__float__方法,因為 poly1d 格式需要浮點數。

像這樣的東西

    def __float__(self):
            return float(self.k)


查看完整回答
反對 回復 2021-10-26
  • 1 回答
  • 0 關注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號