Перегрузка угловых скобок в питоне
Довольно странный вопрос, но возможно ли перегрузить значение некоторых типов скобок, например <, >, [, ] and |
в питоне. Например, если у меня есть несколько экземпляров объекта MyObj1
а также MyObj2
могу ли я придумать что-нибудь <MyObj1 | MyObj2 >
был понят как вызов метода в MyObj1
?
Я думаю, что это, вероятно, не может / не должно быть сделано, но я решил спросить!
1 ответ
Нет. Единственная перегрузка операторов, которая разрешена в Python, - это изменение семантики времени выполнения уже существующих операторов. Синтаксис <MyObj1 | MyObj2 >
будет включать либо <
а также >
в унарные операторы (один префикс, один постфикс) или превращение их обоих в один оператор "обхода". Поскольку в настоящее время они являются двоичными инфиксными операторами, такое изменение не может быть сделано.