获取' TypeError:' list'对象不可调用'错误

时间:2015-08-18 17:07:18

标签: python arrays list python-2.7 loops

在以下自定义功能中:

def get_a_random_memory(length, lower_sum_range, upper_sum_range):

    memory = list()


    for i in range(0, length):
        memory.append((2 * random.randint(0, 1) - 1))


    sum = 0
    for i in range(0, length):
        if len(memory) == 0:
            sum = memory[i]
        else:
            sum = sum + memory[i]

我收到以下错误。

>>> print memories.get_a_random_memory(10, 1, 10)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Users\omarshehab\PycharmProjects\practice\memories.py", line 28, in get_a_random_memory
    if len(memory) == 0:
TypeError: 'list' object is not callable

我假设我正在正确访问列表变量内存。

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

你可以考虑这样做:

def get_a_random_memory(length, lower_sum_range, upper_sum_range):
    memory = [(2 * random.randint(0, 1) - 1) for i in xrange(length)]
    total = sum(memory)

    print memory
    print total

get_a_random_memory(10, 0, 0)

您应该避免使用sum作为变量,因为已经有一个具有该名称的Python函数会自动在列表上执行计算。

此脚本将显示:

[1, -1, -1, -1, -1, 1, 1, 1, -1, -1]
-2