【问题标题】:python 'int' object is not callablepython 'int' 对象不可调用
【发布时间】:2015-12-19 22:19:15
【问题描述】:

我收到 python 错误“TypeError: 'int' object is not callable”,我理解这意味着我不小心将括号直接放在变量或类似的东西之后,但我在我的代码。我的代码是

numFather = random.randrange(0, 10)
numMother = random.randrange = 10 - numFather
print numFather
print numMother
child = []
childgen = []
for FatherCounter in range(0, numFather):
    child.append(FatherTraits[random.randrange(0,5)])
for MotherCounter in range(0, numMother):
    child.append(MotherTraits[random.randrange(0,5)])

错误在

child.append(FatherTraits[random.randrange(0,5)])

如果我将其注释掉,它会再次发生在

child.append(MotherTraits[random.randrange(0,5)])

有人知道怎么回事吗?

【问题讨论】:

  • 你认为这有什么作用 - random.randrange = 10 - numFather
  • numMother = random.randrange = 10 - numFather 这一行将 random.randrange 设置为 int。你想在这里做什么?
  • 我猜他想要numMother = random.randrange(0, 10-numFather)
  • 或者只是numMother = 10 - numFather

标签: python int typeerror callable


【解决方案1】:

你放在哪里

numMother = random.randrange = 10 - numFather

您已将号码10 - numFather 分配给random.randrange。所以random.randrange 现在是一个数字,而不是一个函数。不管你想做什么,这都不是。

【讨论】:

  • 就是这样。愚蠢的错误:我在那条线上放错了东西,当我回去修复它时,我不小心留下了一些原来的线
【解决方案2】:

我同意@khelwood,random.randrange 被设置为一个整数值,但这里有一些其他的编辑

FatherTraits 和 MotherTraits 没有定义。代码行child.append(FatherTraits[random.randrange(0,5)]) 正在调用FatherTraits 的随机数并将其附加到child。

因此,通过定义 FatherTraitsMotherTraits,您的代码应该可以工作。

import random

numFather = random.randrange(0, 10)
numMother = 10 - numFather

child = []
childgen = []

FatherTraits = ['a','b','c','e','f','g']
MotherTraits = ['u','v','w','x','y','z']


for FatherCounter in range(0, numFather):
    child.append(FatherTraits[random.randrange(0,5)])
for MotherCounter in range(0, numMother):
    child.append(MotherTraits[random.randrange(0,5)])

【讨论】:

    猜你喜欢
    • 2017-09-19
    • 2017-12-20
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 2015-01-29
    相关资源
    最近更新 更多