我正在使用一个模拟python列表的类.我想在没有索引的情况下访问它时将其作为python list()返回.
使用普通列表():
>>> a = [1,2,3] >>> a [1,2,3]
我得到的,基本上:
>>> a = MyList([1,2,3]) >>> a <MyList object at 0xdeadbeef>
我无法弄清楚哪种dunder方法(如果有的话)可以让我自定义这种行为?
我认为__得到__?虽然list()没有实现get/set/delete - 我猜是因为它是内置的?
您应该重写__repr__类中的方法(也可以选择重写该__str__方法),请参阅这篇文章以获取有关差异的讨论。
像这样的东西:
class MyList(object):
def __repr__(self):
# iterate over elements and add each one to resulting string
Run Code Online (Sandbox Code Playgroud)
正如注释中指出的,如果未定义则调用,但str()如果未定义则不调用。__repr____str__repr()__str____repr__
| 归档时间: |
|
| 查看次数: |
2641 次 |
| 最近记录: |