有沒有鉤住str .__ getitem__的方法?在Python中鉤住str .__ getitem__
例子:
我希望能夠做的:
>>> "this is a string"[[1,3,4]]
'hs '
傳遞一個清單[],並獲得在該列表中的項目。
一個更現實的例子:
class STR(str):
pass
class INT(int):
pass
這很容易使該STR("a string")[1]
或STR("a string")[INT(1)]
返回STR實例。
我希望能夠使"a non STR string"[INT(1)]
返回一個STR實例。
這樣做的原因有很多,通常是一個壞主意,但我認爲無法修改來自C代碼(包括內置函數)的類只是一種優化。你可以做的最好的辦法是使你的INT類成爲int的一個子類(這意味着它是不可變的),或者定義'__int__',並使用「string」[int(INT(1))]。 (對於非整數,字符串下標應該實際上隱式調用'__int__'。) – 2010-02-07 02:21:05