>>> d = {'m': 'mango', 'f': 'fish', 'a': 'apple'}
>>> d
{'m': 'mango', 'f': 'fish', 'a': 'apple'}
>>> d.keys()
dict_keys(['m', 'f', 'a'])
>>> for x in d.keys(): print(x)
m
f
a
>>> |
什么是dict_keys()
以及如何在方法中覆盖它(方式__iter__
被覆盖)?
>>> d = {'m': 'mango', 'f': 'fish', 'a': 'apple'}
>>> d
{'m': 'mango', 'f': 'fish', 'a': 'apple'}
>>> d.keys()
dict_keys(['m', 'f', 'a'])
>>> for x in d.keys(): print(x)
m
f
a
>>> |
什么是dict_keys()
以及如何在方法中覆盖它(方式__iter__
被覆盖)?
dict_keys()
是一个字典视图对象;此类对象是可迭代对象(这意味着您可以使用 为此类对象创建多个独立的迭代器iter()
)。
您可以从方法中返回您自己的此类对象的实现.keys()
。返回的特定类型dict.keys()
不可重复使用,您必须从头开始实现自己的类型。
我在以前的答案中介绍了创建自己的答案;有很多方法可以涵盖。
请注意,生成器函数只是一种使用 Python 函数创建迭代器的技术。所有生成器函数在调用时都会产生一个迭代器,但并非所有迭代器都是生成器迭代器。您还可以使用生成器表达式创建迭代器,或者通过包含一个__iter__
返回的self
__next__
方法和一个在每次调用它时生成其中一个项目的方法。