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>