从另一个函数调用一个函数时,在pycassaShell中获取意外的NameError

时间:2012-07-19 11:55:16

标签: python cassandra pycassa

我正在玩pycassaShell(作为CassandraTwissandra教程的一部分)。 当尝试在shell中添加两个函数,并从另一个调用一个函数时,我得到一个错误,即名称无法识别。

这可能非常简单,但我没有找到如何做到这一点。

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

4 个答案:

答案 0 :(得分:1)

Pycassa嵌入IPython的方式存在问题。这是the same problem @Benjamin关于Django的IPython使用的白色参考。 Django fixed the bug accepting a pull request from an IPython core dev

我冒昧地file an issue with Pycassa。希望他们能够调查为什么类似的修复对他们不起作用。

答案 1 :(得分:0)

这很奇怪。我不知道为什么会这样,但试试这个:

def aaa(): print 5

def bbb():
    global aaa
    aaa()

答案 2 :(得分:0)

你有可能使用Python 3吗?如果是,请访问http://docs.python.org/release/3.0.1/whatsnew/3.0.html以获取更改列表。

它在IPython和常规python v2.7中都有效。

答案 3 :(得分:0)

怎么样:

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

当我收到姓名错误时,这就是我的行为......