13

我正在玩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

4 回答 4

1

这是 Pycassa 嵌入 IPython 的方式的一个问题。这是@Benjamin White 关于 Django 的 IPython 使用的相同问题。Django通过接受来自 IPython 核心 dev 的拉取请求修复了该错误

我冒昧地向Pycassa 提出问题。希望他们能够调查为什么类似的修复对他们不起作用。

于 2013-04-08T16:52:23.773 回答
0

关于什么:

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

当我收到名称错误时,这就是我所做的......

于 2012-08-10T10:17:18.190 回答
0

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

def aaa(): print 5

def bbb():
    global aaa
    aaa()
于 2012-07-30T20:34:16.230 回答
0

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

它适用于 IPython 和常规 python v2.7。

于 2012-07-31T20:16:11.500 回答