Je ne comprends pas comment poser cette question. Si je le faisais, je serais probablement beaucoup plus proche d'une solution. J'ai besoin d'un aperçu de l'héritage.Un exemple d'héritage en Python
Je veux faire un sous-type personnalisé de float
. Mais je veux que l'instance de ce sous-type réévalue sa valeur avant d'exécuter l'une des méthodes de flottement normales (__add__
, __mul__
, etc.). Dans cet exemple, il devrait multiplier sa valeur par le facteur global:
class FactorFloat(float):
# I don't think I want to do this:
## def __new__(self, value):
## return float.__new__(self, value)
def __init__(self, value):
float.__init__(self, value)
# Something important is missing..
# I want to do something with global FACTOR
# when any float method is called.
f = FactorFloat(3.)
FACTOR = 10.
print f # 30.0
print f-1 # 29.0
FACTOR = 2.
print f # 6.0
print f-1 # 5.0
C'est juste un exemple aseptisé que je pense obtient mon point de. Je posterai un problème "réel" plus complexe si nécessaire.
Merci. Juste curieux, existe-t-il un moyen de faire une boucle sur dir (float) au lieu de définir '__mul__',' __div__', etc. individuellement? Je demande parce que je pourrais essayer ceci sur un tableau numpy au lieu d'un flotteur. – Paul
Voir la modification à ma réponse. –