Use operator.index() instead of n.__index__().
diff --git a/Lib/fractions.py b/Lib/fractions.py
index 944e1fc..6bde774 100755
--- a/Lib/fractions.py
+++ b/Lib/fractions.py
@@ -96,11 +96,8 @@
 
         if denominator == 0:
             raise ZeroDivisionError('Fraction(%s, 0)' % numerator)
-        try:
-            numerator = numerator.__index__()
-            denominator = denominator.__index__()
-        except AttributeError:
-            raise TypeError('Numerator and denominator must support __index__.')
+        numerator = operator.index(numerator)
+        denominator = operator.index(denominator)
         g = gcd(numerator, denominator)
         self._numerator = numerator // g
         self._denominator = denominator // g