Redefining Rational as a class which inherits from `numbers.Rational` causes `isinstance(number, numbers.Rational)` to raise `TypeError`, except if I also do `isinstance(number, numbers.Rational)` BEFORE defining my own Rational class, why? what am I doing wrong?

**This failes:**

```
import numbers

class RationalMeta(type, numbers.Rational):
    pass

class Rational(metaclass=RationalMeta):
    pass

print(isinstance(1, numbers.Rational))
# True

print(isinstance(1., numbers.Rational))
# TypeError: unbound method type.__subclasses__() needs an argument

```

**But this works!** for some reason:

```
import numbers

print(isinstance(1., numbers.Rational))
# False

class RationalMeta(type, numbers.Rational):
    pass

class Rational(metaclass=RationalMeta):
    pass

print(isinstance(1, numbers.Rational))
# True

print(isinstance(1., numbers.Rational))
# False

```

..the only difference being that I run `isinstance(number, numbers.Rational)` before I define my own Rational class as well.

I have spend a lot of time trying to debug what is going on here but I just can't figure it out, and I can't find anything in the documentation about this. This error seems very strange to me.

**The version of python that I am using is 3.10.0**