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
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
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