gpt4 book ai didi

python - 这段代码中 self[identifier] = some_value 做了什么?

转载 作者:太空狗 更新时间:2023-10-30 00:05:50 25 4
gpt4 key购买 nike

我只是想学习 Python 中的 K-ary 树实现并遇到了这个链接: http://www.quesucede.com/page/show/id/python-3-tree-implementation

在tree.py文件中,有一段代码是这样的:

class Tree:

def __init__(self):
self.__nodes = {}

@property
def nodes(self):
return self.__nodes

def add_node(self, identifier, parent=None):
node = Node(identifier)
self[identifier] = node

if parent is not None:
self[parent].add_child(identifier)

return node

# ... ...

def __getitem__(self, key):
return self.__nodes[key]

def __setitem__(self, key, item):
self.__nodes[key] = item

什么是self[identifier]?是 list 吗?这真是令人困惑。有人可以解释和/或指出一些使用 self 作为列表的文档吗?

最佳答案

在完整的示例代码中,这是重要的一点:

def __getitem__(self, key):
return self.__nodes[key]

def __setitem__(self, key, item):
self.__nodes[key] = item

这两个“魔法方法”,__getitem____setitem__,允许像访问列表或字典一样访问类,使用 foo[key ] 语法。

因此,在您的情况下,如果 foo 是一个 Tree 实例,foo["a"] = "b" 将执行 __setitem__key"a"item"b",因此映射keyself.__nodes 字典中的 item

关于python - 这段代码中 self[identifier] = some_value 做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38752193/

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