J'ai un problème inattendu. Voici le code simplifié:Appelez la classe privée dans exec() python
class test():
def __init__(self,name):
self.name = name
def __private(self):
print(self.name)
def public(self):
exec("self.__private()")
obj = test('John')
obj.public()
personne ne sait comment je peux faire ce travail de code sans se débarrasser de l'instruction exec?
Ce n'est pas une méthode privée. Il n'y a pas de "privé" en Python. –
@Ignacio Vazquez-Abrams c'est le plus proche peut accéder à une fonction privée si vous l'appelez comme obj .__ private() il retournera une erreur – Daan
Ce n'est pas une sorte de privé. Ce n'est pas destiné à rendre les choses privées. Il sert à empêcher les conflits de noms d'attributs lors de l'utilisation de l'héritage multiple. –