New GitHub issue #121291 from gswifort:<br>

<hr>

<pre>
When I define methods `('__or__', '__and__', '__xor__', '__ror__', '__rand__', '__rxor__', '__invert__')`
directly in the class inheriting from `enum.Flag`, these methods are "added" (mro) to the members, however, if the method is defined in the mixin, the methods defined in `enum.Flag` are added (e.g. `Flag.__or__`). I would expect methods to be called from mixin.

```py
from enum import Flag


class Mixin:
 def __or__(self, value): ...


class MyFlag(Mixin, Flag):
 pass


class MyFlag2(Flag):
    def __or__(self, value): ...


print(MyFlag.__or__.__qualname__)  # Flag.__or__, I would expect Mixin.__or__
print(MyFlag2.__or__.__qualname__)  # MyFlag2.__or__ - GOOD
```

https://github.com/python/cpython/blob/089835469d5efbea4793cd611b43cb8387f2e7e5/Lib/enum.py#L610-L619
</pre>

<hr>

<a href="https://github.com/python/cpython/issues/121291">View on GitHub</a>
<p>Labels: </p>
<p>Assignee: </p>