Python将字符串赋值给变量- Str对象是不可调用的消息



我有以下问题

roles = models.StringField
def role(player):
if player.rank == 1:
return 'leader'
else:
return 'member'

后来我试图分配的角色函数结果是字符串的角色变量,即

for i in range(len(players)):
players[i].roles = players[i].role()
.....

然而,我得到的消息是str函数是不可调用的。我是python编程的新手。任何帮助都将不胜感激。否则,功能将正常工作。我正在使用python 3.9.

我通过尝试

使用setattr函数
for i in range(len(players)):
name = 'roles'
setattr(players[i], name, players[i].role())
.....

然而,我仍然得到相同的消息,str函数不可调用。你知道我该怎么解决这个问题吗?

此错误MSG是运行时错误。
表示players[i].role是字符串而不是函数。这意味着某个地方是你的应用程序,你给players[i].role分配了一个字符串值。所以它不再是一个函数。
这可能是一个打字错误(即:你可能写
players[i].role = "blabla bla"
而不是
players[i].roles = "blabla bla")

最新更新