[問題] 實踐功能限定的str

看板Python作者時間1年前 (2023/01/12 18:36), 1年前編輯推噓3(301)
留言4則, 2人參與, 1年前最新討論串1/2 (看更多)
如果我需要一種特殊的str,所支援的操作及方法都和內建型態的str 相同,但是: 1.比較時不分大小寫 2.字串長度不可大於30個字元 3.能與內建型態的str 進行比較(==)、連接(+)等操作 目前直覺想到的作法是繼承str ,在__eq__裡將比較對象跟本身都轉為小寫再進行比較,以及__init__跟__add__裡檢查字串長度,若大於30個字元就拋出例外。因為我沒辦法預測使用者會呼叫其他哪些方法,所以也得一一檢查所有從str 繼承而來的方法是否能符合上面條件,想起來應該就是個大工程。 請問是否有更好的方式可以完成上面的需求呢? 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.85.6 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1673519801.A.EBB.html

01/12 19:17, 1年前 , 1F
就算繼承了也無法達成你的需求
01/12 19:17, 1F

01/12 19:29, 1年前 , 2F
繼承collections.UserString 後改寫init eq lt
01/12 19:29, 2F

01/12 21:17, 1年前 , 3F
謝謝神人,連測試都附上了。

01/12 21:19, 1年前 , 4F
樓上好人耶 太神啦
01/12 21:19, 4F
※ 編輯: icetofux (111.240.215.213 臺灣), 01/12/2023 22:25:47
文章代碼(AID): #1Zl-Avwx (Python)
文章代碼(AID): #1Zl-Avwx (Python)