在python中我的代码中找不到错误的原因

rok*_*n54 0 python hashmap

我是Python的初学者,通过学习Python艰难的方式学习.

不幸的是,我一直收到错误,不知道为什么.

这是代码:

def new(num_buckets=256): # Creates list aMap and fills it with 256 empty lists.
    """ Initializes a Map with the given number of buckets."""
    aMap = []
    for i in range(0, num_buckets):
        aMap.append([])
    return aMap

new()
print aMap
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我不断收到消息说即使我刚刚运行了一个函数来创建一个列表中的一堆空桶,也没有定义aMap.

谢谢你的帮助.

mgi*_*son 7

new() 返回 aMap,但你永远不会存储.你要:

aMap = new()
Run Code Online (Sandbox Code Playgroud)

一般来说,除非您明确说明(通过一个globalnonlocal一个语句),否则名称仅存在于定义它的范围内.在这种情况下,名称aMap仅存在于函数内部new.要使该名称存在于函数外部,您需要为其指定一些内容.

仅限1个 Python3.x.