我正在使用模擬python列表的類。我想在沒有索引的情況下訪問它時將它作爲python list()返回。模擬Python中的列表
與正常名單():
>>> a = [1,2,3] >>> a [1,2,3]
什麼我得到,主要有:
>>> a = MyList([1,2,3]) >>> a <MyList object at 0xdeadbeef>
我想不通這dunder方法(如果有的話),可以讓我定製這種行爲?
我想這會是__ get __?雖然list()沒有實現get/set/delete - 我猜是因爲它是內置的?
我張貼的答案,但實際上我不知道你的意思。你能舉一個你想達到的例子嗎?如果你想在控制檯輸入'a'時顯示你的列表,那麼你正在尋找'__repr__'方法 –
當你只輸入名字時,你在交互式shell中看到的是repr(REPResentational)字符串。與第一個一樣,真正的列表發出一個看起來像源代碼的字符串。理想情況下,'eval(repr(object))'應該適用於簡單類型。所以當你這樣展示時,你不會「訪問」它,而是「串化」它。 – Keith
是的,這正是我所尋找的。我對那裏發生的事情感到困惑。 – la11111