Delegation in Python

Terry Reedy tjreedy at
Sun Jan 25 02:31:31 CET 2015

On 1/24/2015 5:57 PM, Brian Gladman wrote:
> I would appreciate advice on how to set up delgation in Python.
> I am continuously implementing a function to test whether a Python
> Fraction is an integer

Since Fractions are reduced to lowest terms,
 >>> from fractions import Fraction as F
 >>> F(4, 2)
Fraction(2, 1)
 >>> F(12, 3)
Fraction(4, 1)

the test is that the denominator is 1

 >>> F(12,3).denominator == 1
 >>> F(12,5).denominator == 1

it may not be worth the bother to define a function,

def fint(F): return F.denominator == 1

>so I wanted to define a new class, based on
> Fraction, that includes this new method.

but if you do, there is little need to make it a method.  You are not 
overriding an existing method or adding a new special method.  The math 
module has float and int functions that have *not* been turned into 
methods.  Ditto for cmath.  I would just leave the function a function. 
  Python is not Java.

Terry Jan Reedy

More information about the Python-list mailing list