2012-07-19 4 views
13

私はpycassaShellCassandraTwissandraチュートリアルの一部として)で遊んでいます。 シェル内に2つの関数を追加しようとしたときに、もう一方を呼び出すと、名前が認識されないというエラーが発生します。別の関数を呼び出すときにpycassaShellで予期せぬNameErrorを取得する

これはおそらく非常に簡単なことですが、これを行う方法はわかりませんでした。

pycassaShellは、次のようになります。

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

省略された出力をトレースバックに含めることができますか(あるものと仮定して)?そこには何か役に立つかもしれないし、私はカッサンドラ/ピカッサを現時点で設定していないので、私は自分で確認することはできません。 – blahdiblah

+1

完全に純粋なIPythonで動作します。 – utapyngo

+1

純粋なpythonでもうまく動作します – Logan

答えて

0

これは奇妙です。私はそれが起こっている理由を知っているが、これを試してみません:

def aaa(): print 5 

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

申し訳ありませんが、これは解決していません問題。 – eran

+0

'dir()'を実行して出力を教えてください。 Pythonでは '['__builtins__'、 '__doc__'、 '__name__'、 '__package__'、 'aaa'、 'bbb']'と言っています。 – Logan

+0

@eran dir()を実行できますか? – Logan

0

は、それはあなたは、Python 3を使用していることは可能ですか?変更したい場合はhttp://docs.python.org/release/3.0.1/whatsnew/3.0.htmlにアクセスしてください。

IPythonと通常のpython v2.7の両方で動作します。

+0

それはどのようにそれに影響を及ぼしますか? – Logan

0

について何を:私は名前のエラーを取得するとき、私は何をすべきかだ

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

...

関連する問題