self est utilisé lors de la création d'une classe en python, mais il n'est pas nécessaire que ce soit le caractère self. Cela signifie qu'il est habituel d'utiliser soi-même.
Et bien que soi-même soit souvent appelé soi-même, je pense que c'est trompeur. Comme vous pouvez le voir en créant une classe et en écrivant une méthode qui renvoie self, self est ** self à ce stade **. Et ce moi peut être changé intentionnellement.
sample.py
# -*- coding: utf-8 -*-
class Hoge:
def __init__(self, a):
self.__a = a
def call(self):
print(self.__a)
ins = Hoge(1)
ins.call() # 1
Le code ci-dessus est un programme général. Cependant, vous pouvez également écrire comme ceci.
sample2.py
# -*- coding: utf-8 -*-
class Hoge:
def __init__(self, a):
self.__a = a
def call(self):
print(self.__a)
ins = Hoge(1)
Hoge.call(ins) # 1
C'est parce que nous passons l'objet directement à soi. Bien sûr, vous pouvez faire des choses aussi étranges.
sample3.py
# -*- coding: utf-8 -*-
class Hoge:
def __init__(self, a):
self.__a = a
def call(self):
print(self.__a)
ins = Hoge(1)
ins2 = Hoge(2)
ins.call() # 1
ins2.call() # 2
Hoge.__init__(ins, 3)
ins.call() # 3
Bien sûr, nous ne faisons généralement pas des choses aussi étranges! Je pense que c'est raisonnable, mais je trouve personnellement cela intéressant. N'est-ce pas un peu frais pour ceux qui écrivent en quelque sorte python?
Recommended Posts