我正在使用模拟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