2012-07-19 1 views
13

Sto giocando con pycassaShell (come parte dell'esercitazione Cassandra e Twissandra). Quando si tenta di aggiungere due funzioni all'interno della shell e chiamarne una dall'altra, viene visualizzato un errore in cui il nome non viene riconosciuto.Ottenere un NomeErrore inaspettato in pycassaShell quando si richiama una funzione da un'altra

Questa è probabilmente una cosa molto semplice, ma non ho trovato come farlo.

Il pycassaShell assomiglia:

In [3]: def aaa(): print 5 
In [4]: aaa() 
5 

In [5]: def bbb(): aaa() 

In [6]: bbb() 
--------------------------------------------------------------------------- 
NameError         Traceback (most recent call last) 
... 
NameError: global name 'aaa' is not defined 
+3

È possibile includere l'output elided nel traceback (supponendo che ce ne sia qualcuno)? Potrebbe esserci qualcosa di utile lì e non ho impostato Cassandra/pycassa al momento, quindi non posso controllare da solo. – blahdiblah

+1

Funziona perfettamente in puro IPython. – utapyngo

+1

Funziona bene anche in puro python – Logan

risposta

0

Questo è strano. Non so perché sta accadendo, ma prova questo:

def aaa(): print 5 

def bbb(): 
    global aaa 
    aaa() 
+0

scusa, questo non risolve il problema problema. – eran

+0

potresti eseguire 'dir()' e dirci l'output? In pitone dovrebbe dire '['__builtins__', '__doc__', '__name__', '__package__', 'aaa', 'bbb']'. – Logan

+0

@eran puoi eseguire dir()? – Logan

0

Che dire:

def aaa(self): print 5 
def bbb(): self.aaa 

Questo è quello che faccio quando arrivo Nome errori ...