从列表中提取时,“TypeError:'str'对象不可调用”

问题描述 投票:-3回答:1

我收到这个TypeError

if 'Stack 6' in placement():
TypeError: 'str' object is not callable. 

在我的for-each语句中将它转换为整数不起作用,我无法更改列表中的任何值。

我无法理解为什么这会返回TypeError

game = [['Stack 6', 'Suit D', 9, 6],
  ['Stack 4', 'Suit B', 5, 0]]

for instructions in game:
    for placement in instructions:
        if 'Stack 6' in placement():
            print(placement)

然而,这段相似的代码不会返回任何错误:

elements = [['he', 'ne', 'Ar', 'Kr'],
    ['F', 'Cl', 'Br', 'I']]

for family in elements:
    for symbol in family:
        if 'a' in symbol.lower():
            print(symbol)
python python-3.x
1个回答
0
投票

placement不是一个功能。这是一个string。将括号放在对象后面告诉python调用该对象,而对于字符串则不能这样做。删除括号以修复代码。

使用symbol.lower()的代码是有效的,因为lower()是一个可以调用以返回某些东西的函数。

Here's a handy link更详细地解释python中的callable是什么。

© www.soinside.com 2019 - 2024. All rights reserved.