我一直在尝试用Python运行以下代码:
def likes(names):
dictionary_of_sizes = {
0:"no one likes this",
1:(lambda names: "{} likes this".format(names[0])),
2:(lambda names: "{} and {} like this".format(names[0], names[1])),
3:(lambda names: "{}, {} and {} like this".format(name[0], names[1],names[2])),
4:(lambda names: "{}, {} and {} others like this".format(names[0], names[1], len(names)-2))
}
return dictionary_of_sizes[len(names)](names) if len(names)<4 else dictionary_of_sizes[4]
我总是得到错误'str'对象是不可调用的。你知道吗
问题:我做错了什么?你知道吗
您没有向我们显示引发异常的代码。当你不告诉我们你在做什么的时候,很难说你做错了什么。但如果我这么做,它似乎起作用了:
我怀疑你可能是这样称呼
likes()
:或者像这样:
你在如何调用函数方面遇到困难也就不足为奇了。代码对于它所做的事情来说是不必要的复杂。它需要彻底重写。如果要快速修复,请更改此行:
至
但是你真的应该放弃那些不必要的和难以阅读的
lambda
,做一些类似的事情:如果您传递一个空字符串,它将写出错误消息。 您可以使用列表而不是字典:
使用Python 3.6的f字符串:
输出:
相关问题 更多 >
编程相关推荐