Calcul de la classe auto-fabriquée et de la classe existante

Je souhaite multiplier ma propre classe et une classe existante

Par exemple, que dois-je faire lorsque je veux exécuter un multiple constant de la "classe Point" souvent donnée à titre d'exemple? Par exemple

class Point():
    def __init__(self,x,y):
        self.x = x
        self.y = y

Définissons cependant la multiplication. En tant que spécification, supposons que lors de la multiplication des points, un type Point multiplié par x et y est renvoyé, et lors de la multiplication par un entier, un type Point multiplié par une constante est renvoyé.

Conclusion

Tout d'abord, définissez l'opération avec \ _ \ _ mul__

class Point():
...
    def __mul__(self, other):
        if isinstance(other,Point):
            return Point(self.x*other.x,self.y*other.y)
        elif isinstance(other,int):
            return Point(self.x*other,self.y*other)
        else:
            return NotImplemented
...

Comme cela seul ne prend pas en charge les opérations à partir de la droite, utilisez \ _ \ _ rmul__ Par exemple, lorsque mul est défini dans une opération qui détient la loi de change.


def __rmul__(self,other):
   return self*other

Mais ça va si tu écris Si vous voulez utiliser autre * = etc., vous pouvez appeler \ _ \ _ imul__.

Recommended Posts

Calcul de la classe auto-fabriquée et de la classe existante
Exemple d'utilisation de variables de classe et de méthodes de classe
Comparaison de l'héritage de classe et de la description du constructeur
Calcul du nombre d'années écoulées et du nombre de mois écoulés y compris hors-année
Calcul des indicateurs techniques par TA-Lib et pandas
[Python] Type de classe et utilisation du module datetime
Résumé du traitement pickle et unpickle des classes définies par l'utilisateur
À propos de la classe et de l'instance
Parallélisation de la méthode de classe
Calcul de l'écart type et du coefficient de corrélation en Python
[python] Calcul des mois et des années de différence de date / heure
Classes et méthodes statiques
Démarrer le calcul numérique avec Python (avec Homebrew et pip)
Exemple d'obtention du nom du module et du nom de la classe en Python
Vue d'ensemble des vues génériques basées sur les classes et des relations de classe héritées
[Python] Types de valeurs statistiques (caractéristiques) et méthodes de calcul
[Python] Fonctionnalisation de la formule de Heron et calcul de la surface maximale
Calcul de l'odométrie à l'aide de CNN et estimation de la profondeur Partie 2 (CNN SLAM # 2)
Ordre de référence des variables de classe et des variables d'instance dans "self. Variables de classe" en Python
[Introduction à Scipy] Calcul de la courbe de Lorenz et du coefficient de Gini ♬
Dérivation de l'algorithme EM et exemple de calcul pour le tirage au sort
Le problème des menteurs et de l'honnêteté
Diverses méthodes de classe et méthodes statiques
Mécanisme de pyenv et virtualenv
Pré-traitement et post-traitement de pytest
Globalisation des variables d'instance de classe
Combinaison de anyenv et direnv
Explication et mise en œuvre de SocialFoceModel
Différenciation du tri et généralisation du tri
Calcul de similitude par MinHash
Variables de classe et d'instance Python
Coexistence de pyenv et autojump
Utilisation et intégration de "Shodan"
Le problème des menteurs et de l'honnêteté
À propos du calcul des coûts de MeCab
Occurrence et résolution de tensorflow.python.framework.errors_impl.FailedPreconditionError
Héritage de classe et super fonction
Comparaison d'Apex et de Lamvery
Installation source et installation de Python
Introduction et astuces de mlflow.
Calcul d'estimation / prédiction au Lasso et Ridge du modèle linéaire généralisé