1
我知道Python
只会在for...in...
语法中使用dict
时返回密钥列表。当我在python中循环一个字典时会发生什么?
但是,字典发生了什么?
当我们使用help(dict)
,我们不能在方法列表中看到__next()__
方法。所以,如果我想使基于dict
派生类:
class MyDict(dict)
def __init__(self, *args, **kwargs):
super(MyDict, self).__init__(*args, **kwargs)
和与for...in...
d = Mydict({'a': 1, 'b': 2})
for value in d:
返回值列表怎么办?
为什么'dict'有'__next__'?它有'__iter__',并且该函数返回的对象支持'next'。你的类'MyClass'从它的基类'dict'继承'__iter__',所以它具有与'dict'相同的行为。 –
请注意:这可能会让您或其他人感到困惑:每个人都会期望遍历这些键,并且突然我们在这里获得值(即使您的变量被命名为“value”)。只需在'd.values()'中使用'作为值;毫无疑问,这很明显是怎么回事。 – Evert
我相信'yield'关键字和[Generators](https://wiki.python.org/moin/Generators)是你正在寻找的。 – Maurice