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 52 53 54
| #!/usr/bin/env python3
class verin:
def __init__(self, pi=0, diametre=None, pression=None, force=None):
self.__pi=pi
self.__d=diametre
self.__p=pression
self.__f=force
# __init__()
def __calcP(self): return (4*self.__f) / (self.__pi * self.__d**2)
def __calcF(self): return (self.__pi * self.__d**2 * self.__p) / 4
def __calcD(self): return 2* (self.__f / (self.__pi*self.__p)) ** 0.5
def carac(self):
res={
"diametre" : self.__d,
"pression" : self.__p,
"force" : self.__f,
}
calc={
"diametre" : self.__calcD,
"pression" : self.__calcP,
"force" : self.__calcF,
}
if (self.__d, self.__p, self.__f).count(None) != 1: # S'il manque plus d'une valeur ou si on a toutes les valeurs...
return res # Tant pis (ou tant mieux), de toute façon on peut pas calculer
for k in res.keys():
# Si on a une valeur manquante
if res[k] is None:
# On la calcule et c'est fini
res[k]=calc[k]()
break
# if
# for
# On renvoie le résultat calculé
return res
# carac()
def __str__(self):
return "pi=%f, force=%s, diametre=%s, pression=%s" % (self.__pi, self.__f, self.__d, self.__p)
# class verin
v0=verin(pi=5, pression=7, force=12, diametre=4) # Le verrin témoin
vd=verin(pi=5, pression=7, force=12) # Il lui manque le diamètre
vp=verin(pi=5, diametre=4, force=12) # Il lui manque la pression
vf=verin(pi=5, diametre=4, pression=7) # Il lui manque la force
print("v0: %s => %s" % (v0, v0.carac()))
print("vd: %s => %s" % (vd, vd.carac()))
print("vp: %s => %s" % (vp, vp.carac()))
print("vf: %s => %s" % (vf, vf.carac())) |
Partager