【问题标题】:Python 3.7 TypeError: 'list' object is not callable [duplicate]Python 3.7 TypeError:'list'对象不可调用[重复]
【发布时间】:2019-04-02 20:16:57
【问题描述】:

我希望有人能帮助我解释为什么我正在编写的将字符串转换为二进制数列表的函数不起作用。

def string2bin(str):
    bin = []
    for n in range(len(str)):
        char = ord(str[n])
        char = bin(char)
        char[2:].zfill(8)
        bin.append(list(map(int, char)))

    return bin

这是我在使用这些参数运行函数时遇到的错误。

string2bin('abc')

    char = bin(char)
TypeError: 'list' object is not callable

感谢您的帮助。

【问题讨论】:

  • 你覆盖binbin = []。稍后在bin(char) 的代码中,您将收到该错误消息。 str...

标签: python python-3.x


【解决方案1】:

str是python中的保留关键字。为您的变量使用另一个名称。

【讨论】:

  • 这应该是一条评论,因为它没有回答 OP
  • 你是对的。不幸的是,我没有足够的声誉来发表评论。
【解决方案2】:

bin()Python built-in method,但您将最终列表命名为 bin = [],因此当您到达 char = bin(char) 时,您已经覆盖了它。

您得到的错误是因为 bin 现在引用了一个列表,然后您尝试像函数一样调用该列表。

只需将 bin 重命名为其他名称即可。

另外,char 不是 ord(str[n]) 的好名字。

【讨论】:

    【解决方案3】:

    您已将第一个 bin 定义为列表,然后将其用作函数。 我想你想改用char = bin[char]

    【讨论】:

      猜你喜欢
      • 2013-09-16
      • 2015-09-14
      • 2012-04-21
      • 2014-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      相关资源
      最近更新 更多