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