classe Point
class Point : def __init__ (self, x,y) : self.x = x self.y = y
instance Point
p = Point (4,5)
self ou moi
class Point : def __init__ (moi, x,y) : moi.x = x moi.y = y p1 = Point(4,5) # moi désigne p1 ici p2 = Point(6,7) # moi désigne p2 ici
print point
print (p1) # affiche <__main__.Point object at 0x0288E470>
print x,y
print (p1.x, p1.y)
__str__
class Point : def __init__ (moi, x,y) : moi.x = x moi.y = y def __str__(moi): return "point: ({0},{1})".format(moi.x, moi.y) p = Point(4,5) print (p) # affiche point: (4,5)
addition avec __add__
class Point : def __init__ (moi, x,y) : moi.x = x moi.y = y def __str__(moi): return "{0},{1}".format(moi.x, moi.y) def __add__(moi, autre_point) : return Point(moi.x + autre_point.x, moi.y + autre_point.y) p = Point(4,5) print (p + p) # affiche 8,10
classe CarreMagique
class CarreMagique : def __init__(self, ...) : .... def __str__(self) : .... def __add__(self) : ....
méthode norm
class Point : def __init__ (moi, x,y) : moi.x = x moi.y = y def norm(moi) : return (moi.x**2 + moi.y**2) ** 0.5 p = Point(4,5) print (p.norm())
méthode norm
class Point : def __init__ (moi, x,y) : moi.x = x moi.y = y def norm(moi, lx = 2) : return (abs(moi.x)**lx + abs(moi.y)**lx) ** (1.0 / lx) print (p.norm(1)) print (p.norm(2)) print (p.norm(3)) print (p.norm(100))
appel d'une méthode depuis une autre méthode
class Point : def __init__ (moi, x,y) : moi.x = x moi.y = y def norm(moi, lx = 2) : if lx == 0 : return moi.est_nul() else : return (abs(moi.x)**lx + abs(moi.y)**lx) ** (1.0 / lx) def est_nul(moi): return moi.x == 0 and moi.y == 0