Parfois, il y a deux traits de soulignement avant la fonction dans la classe
def __hogehoge():
print('Hello.')
Je ne savais pas ce que cela signifiait, donc un mémorandum Conclusion: ne peut être appelé que dans cette classe
Essayons réellement ~ Préparez l'échantillon suivant
train.py
class Hoge:
def __init__(self):
print('this is init function.')
def public():
print('this is public function.')
def __private():
print('this is private function.')
Accédez au répertoire où se trouve ce fichier dans [Terminal], puis exécutez comme suit.
__init__
est toujours appelé lorsque vous exécutez la classe
$python
>>> from train import Hoge
>>> Hoge()
this is init function.
Entrez ce qui suit dans la suite du terminal
>>> Hoge.public()
this is public function.
Les fonctions sans aucun lien peuvent être appelées sans problème
Entrez ce qui suit dans la suite du terminal
>>> Hoge.__private()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'Hoge' has no attribute '__private'
Échec d'appel externe
Post-scriptum:
19/12/4
J'ai reçu un commentaire.
Si vous voulez vraiment l'appeler, vous pouvez l'appeler en tapant
Foo._Foo__a```!
Merci pour l'information.
Recommended Posts