Я хочу создать класс без наследования frozenset
(если только я не могу наследовать tuple
и frozenset
без получения TypeError: multiple bases have instance lay-out conflict
), где я могу использовать понимание набора, например |
, &
, <
и >
операторов.
A = {"first"}
B = {"second"}
C = A | B
class Custom(tuple):
def __new__(self, pair, **metadata):
return super(Custom, self).__new__(self,tuple(pair))
def __init__(self, pair, **metadata):
self.pair = tuple(pair)
self.metadata = metadata
pair_1 = Custom(["A","B"])
pair_2 = Custom(["B","C"])
pair_1 | pair_2
Я не смог найти никаких "специальных" функций, которые делают это.