有时候这段代码工作得很好并且可以遍历,但有时会抛出int对象而不是可调用错误。我不确定它为什么这样做。'int'对象不可调用,只能随机出现
for ship in ships:
vert_or_horz = randint(0,100) % 2
for size in range(ship.size):
if size == 0:
ship.location.append((random_row(board),random_col(board)))
else:
# This is the horizontal placing
if vert_or_horz != 0 and ship.size > 1:
ship.location.append((ship.location[0][0], \
ship.location[0][1] + size))
while(ship.location[size][1] > len(board[0])) or \
(ship.location[size][1] < 0):
if ship.location[size][1] > len(board[0]):
ship.location[size][1]((ship.location[0][0], \
ship.location[0][1] - size))
if ship.location[size][1] < 0:
ship.location[size][1]((ship.location[0][0], \
ship.location[0][1] + size))
# This is the vertical placing
if vert_or_horz == 0 and ship.size > 1:
ship.location.append((ship.location[0][0] + size, \
ship.location[0][1]))
while(ship.location[size][1] > len(board[0])) or \
(ship.location[size][1] < 0):
if ship.location[size][1] > len(board[0]):
ship.location[size][1] \
((ship.location[0][0] - size, \
ship.location[0][1]))
if ship.location[size][1] < 0:
ship.location[size][1] \
((ship.location[0][0] + size, \
ship.location[0][1]))
这里是回溯:
Traceback (most recent call last):
File "python", line 217, in <module>
File "python", line 124, in create_med_game
ship.location[size][1]((ship.location[0][0], \
TypeError: 'int' object is not callable
你能后的错误回溯?此外,有些东西必须改变,以便有时出现,而不是其他人。 – Jeff
鉴于您正在使用'random'在您的代码中作出决定,错误出现随机并不奇怪。请在您的问题中包含错误的*完整回溯*。没有这个问题不能很容易地回答,因为你要求我们手动梳理你的代码,以找出可能的错误原因。 –
我的第一个怀疑是它与这样的线有关:'ship.location [size] [1]((ship.location [0] [0],ship.location [0] [1] + size) )'。如果'ship.location [size] [1]'是一个int类型,它将导致类似的错误。 – 0x5453