1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
class A (object):
def __init__(self, n ='test'):
self.name = n
class B(A):
def __init__(self, n ='test', val = 0):
super (B, self).__init__(n)
self.value = val
def __add__(self, val_to_add):
if( (isinstance (val_to_add, C)) or isinstance(val_to_add, B) ):
return ( self.value + val_to_add.value)
elif( (isinstance(val_to_add, float)) or isinstance(val_to_add, int)):
return (self.value + val_to_add)
def __sub__(self, val_to_add):
if( (isinstance (val_to_add, C)) or isinstance(val_to_add, B) ):
return ( self.value - val_to_add.value)
elif( (isinstance(val_to_add, float)) or isinstance(val_to_add, int)):
return (self.value - val_to_add)
def __div__(self, val_to_add):
if( (isinstance (val_to_add, C)) or isinstance(val_to_add, B) ):
return ( self.value / val_to_add.value)
elif( (isinstance(val_to_add, float)) or isinstance(val_to_add, int)):
return (self.value / val_to_add)
class C(B):
def __init__(self, n ='test', val = 0, l = []):
super (C, self).__init__(n, val)
self.liste = l
def __add__(self, val_to_add):
return (super (C, self).__add__(val_to_add))
def __sub__(self, val_to_sub):
return (super (C, self).__sub__(val_to_sub))
def __div__(self, val_to_div):
return (super (C, self).__sub__(val_to_div))
b = B ("toi", 0)
c= C ("t", 3)
print ("b / c", b/c) |
Partager