C++17引入了新的结构化绑定语法:
std::pair<int, int> p = {1, 2};
auto [a, b] = p;
python3中有类似的东西吗?我在考虑使用“splat”操作符将类变量绑定到一个列表,列表可以被解包并赋值给多个变量,就像这样:
class pair:
def __init__(self, first, second):
self.first = first
self.second = second
...
p = pair(1, 2)
a, b = *p
这是可能的吗?如果是的话,我该如何实现它来为我自己的类工作呢?
Python中的元组是解决这个问题的一个简单方法,但是,内置类型在实现其他类方法时给予太大的灵活性。
3条答案
按热度按时间pkmbmrz71#
是的,你可以使用
__iter__
方法,因为迭代器也可以被解包:zzoitvuj2#
你可以使用元组和元组解包(参见Python文档中本节的底部):
bhmjp9jg3#
dataclass的替代方案:
输出(在线试用!):