我正在玩pycassaShell(作为Cassandra和Twissandra教程的一部分)。 当尝试在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
答案 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
当我收到姓名错误时,这就是我的行为......