Так что, как говорят авторы, это не ошибка. Когда вы делаете a += b
, это похоже на b
, когда вы приходите в дом a
и меняете его так, как это нравится a
. Что авторы говорят, когда вы делаете a + b
, не может быть решено, какой стиль будет приоритетным. и никто не знает, где будет результат a + b
, будет go, пока вы его не выполните. Так что вы не можете решить, чей это будет стиль. если это стиль a
, то будет [1, 'a']
, а если это стиль b
, это будет ошибкой. и поэтому не может быть решено, кто получит приоритет . Так что я лично не согласен с этим утверждением. потому что когда вы берете стек вызовов a
находится выше, чем b
. когда есть выражение типа a + b
, вы сначала вызываете a.__add__(self, other)
, если a.__add__
равно NotImplemented
(в данном случае оно реализовано). тогда вы звоните a.__radd__(self, other)
. что означает вызов other.__add__
в этом случае b.__add__
. Я говорю об этом в зависимости от места стека вызовов, и у сообщества python могут быть более важные причины для этого.