Je suis en train de définir une fonction pour faire quelque chose comme çatransmettre les données auto dans une fonction récursive
def __binaryTreeInsert(self, toInsert, currentNode=getRoot(), parentNode=None):
où le nœud actuel commence en tant que root, puis nous changeons à un autre nœud dans la méthode et appelez-le récursivement.
Cependant, je ne peux pas obtenir 'currentNode = getRoot()' pour fonctionner. Si j'essaie d'appeler la fonction getRoot() (comme ci-dessus), elle dit ne pas lui donner toutes les variables requises, mais si j'essaie d'appeler self.getRoot(), elle se plaint que self est une variable indéfinie. Est-ce que je peux faire ceci sans avoir à spécifier la racine en appelant cette méthode?
EDIT: Le cas de base de cette méthode est déjà
if currentNode == None:
si l'aide que pour définir la racine ne fonctionnerait pas
Il me semble très étrange que 'getRoot' est évidemment une fonction au niveau du module prise pas d'arguments? Utilisez-vous l'espace de noms global du module quand vous voulez une instance de classe, ou avez-vous oublié le 'self', ou est-ce que je manque quelque chose? –
'None 'est généralement préféré à' == None'. –
Les méthodes '__foo' devraient généralement être évitées. Ils ne font rien de privé (c'est impossible en Python), mais ils peuvent rendre le sous-classement et les tests plus difficiles. –