我想象了一个班级:
class Foo:
def __init__(self, **values):
self._value_tuple = tuple(values.items())
我希望能够使用内置构造函数将其转换为tuple
:
>>> foo = Foo(ham=1, eggs=2, spam=3)
>>> tuple(foo)
(('ham', 1), ('eggs', 2), ('spam', 3))
*我知道我可以通过实现像astuple()
这样的方法来手动实现它。如果可能的话,我想通过调用tuple
构造函数来实现它。你知道吗
通过在类中定义
__iter__()
方法,可以实现所需的功能:输出:
如果您想要
(keys, values)
,您可以将您的项目存储在dict中:印刷品:
__iter__()
是Python Datamodel的一部分。当您在类中实现此方法时,所有期望iterable的函数和语法构造都将与您的类一起工作而不会发生更改,包括tuple()
中的参数。你知道吗相关问题 更多 >
编程相关推荐