gpt4 book ai didi

python - 如何创建一个也是列表的类?

转载 作者:太空狗 更新时间:2023-10-29 21:19:42 24 4
gpt4 key购买 nike

我想在 Python 中创建一个具有各种属性和方法的类,但要让它继承列表的功能,这样我就可以将对象附加到对象本身,而不是它的任何属性。我希望能够说“graph[3]”,而不是“graph.node_list[3]”。有办法做到这一点吗?

最佳答案

您真正需要做的就是提供一个 __getitem__

In [1]: class Foo:
...: def __init__(self, *args):
...: self.args = args
...: def __getitem__(self, i):
...: return self.args[i]
...:

In [2]: c = Foo(3,4,5)

In [3]: c[2]
Out[3]: 5

In [4]: c[3]
IndexError: tuple index out of range #traceback removed for brevity

In [5]: for i in c: print(i) #look, ma, I can even use a for-loop!
3
4
5

附录:您可能还想提供其他方法。 __len__ 绝对是其中之一。魔术方法的列表相当长,我建议仔细阅读它们并选择有意义的方法。

关于python - 如何创建一个也是列表的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31552432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com