Comment faire "Prêter et emprunter des méthodes JS (celle qui utilise s'appliquent)" en Python

Hypothèse, en JavaScript

En JavaScript, il est bien connu que vous pouvez changer le contexte de `` this``` en fonction via `ʻapply```.

Pour ainsi dire, les méthodes d'autres classes peuvent être utilisées lors de l'exécution.

Après avoir fait le tour, il semble que cela s'appelle la méthode d'emprunt en anglais. Cela signifie-t-il littéralement «emprunter»?

Exemple


function A () {
  this.value = 1;
}


function B () {
  this.value = 2;
}


B.prototype.show = function show () {
  console.log(this.value);
};


var a = A();
B.prototype.show.apply(a);  //C'est comme "un spectacle emprunte et utilise, qui est une méthode de B."

Résultat d'exécution


1

Le sujet principal, en Python

Aujourd'hui, en mangeant avec quelqu'un que je n'avais pas vu depuis longtemps, on m'a demandé: "Puis-je faire la même chose avec Python?" En Python, je souhaite changer `` self '' à l'exécution. De la conclusion, "je peux". Je ne pouvais pas l'expliquer sur-le-champ, alors j'ai décidé de l'écrire en Qiita.

En Python


class A(object):

    def __init__(self):
        self.value = 1


class B(object):

    def __init__(self):
        self.value = 2

    def show(self):
        print(self.value)


a = A()
B.__dict__['show'](a)

Résultat d'exécution


1

Résumé

En Python, il a été dit que diverses références peuvent être faites via `` dict```.

Cependant, si vous en utilisez trop, cela deviendra de la magie noire, alors arrêtez de l'utiliser normalement.

Recommended Posts

Comment faire "Prêter et emprunter des méthodes JS (celle qui utilise s'appliquent)" en Python
[Python] Comment faire PCA avec Python
Comment afficher les octets de la même manière en Java et Python
Comment faire R chartr () en Python
Comment utiliser is et == en Python
Comment écrire le bon shebang dans les scripts Perl, Python et Ruby
Comment obtenir la différence de date et d'heure en secondes avec Python
Comment utiliser la bibliothèque C en Python
Comment générer une séquence en Python et C ++
Comment obtenir les fichiers dans le dossier [Python]
Comment tracer l'autocorrélation et l'autocorrélation partielle avec Python
Conseils pour ceux qui ne savent pas comment utiliser is et == en Python
Comment récupérer la nième plus grande valeur en Python
Comment obtenir le nom de la variable lui-même en python
Recevez le formulaire en Python et faites diverses choses
Comment obtenir le nombre de chiffres en Python
Comment faire un calcul de hachage avec Salt en Python
Comment connaître le répertoire actuel en Python dans Blender
Comment définir Decorator et Decomaker avec une seule fonction
Comment faire du zéro-padding sur une ligne avec OpenCV
% Et str.format () en Python. Lequel utilisez-vous?
[Python] Comment trier un dict dans une liste et une instance dans une liste
Comment utiliser le modèle appris dans Lobe en Python
[Python] Comment afficher les valeurs de liste dans l'ordre
Pour faire l'équivalent de Ruby ObjectSpace._id2ref en Python
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
[python] Comment vérifier si la clé existe dans le dictionnaire
Comment déboguer une bibliothèque Python standard dans Visual Studio
Comment échanger des éléments dans un tableau en Python et comment inverser un tableau.
Les étrangers parlent: Comment nommer les classes et les méthodes en anglais
Comment utiliser la méthode __call__ dans la classe Python
[Python] Comment écrire une instruction if en une phrase.
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
[Super facile! ] Comment afficher le contenu des dictionnaires et des listes incluant le japonais en Python
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment obtenir toutes les clés et valeurs du dictionnaire
Comment développer en Python
Comment exécuter des commandes et des scripts shell externes en python
Comment se connecter à AtCoder avec Python et soumettre automatiquement
Déterminez le format de la date et de l'heure avec Python et convertissez-le en Unixtime
Comment déterminer l'existence d'un élément sélénium en Python
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
Comment réussir et étudier l'examen de base de la certification d'ingénieur Python 3
Comment connaître la structure interne d'un objet en Python
Comment donner et signifier l'option des contraintes dans scipy.optimize.minimize
Le 15e comment écrire un problème de référence en temps réel hors ligne en Python
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
17e comment résoudre les problèmes d'écriture en temps réel hors ligne avec Python
Comment vérifier la taille de la mémoire d'une variable en Python
[Python] Comment obtenir le premier et le dernier jour du mois
Comment utiliser les fonctions dans des fichiers séparés version Perl et version Python
Comment déterminer qu'une clé croisée a été entrée dans Python3
Comment utiliser l'astérisque (*) en Python. C'est peut-être tout? ..
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
[ROS2] Comment décrire le remappage et les paramètres au lancement au format python
Le 14ème problème de référence d'écriture en temps réel hors ligne en python