我在做一个codewars挑战,你必须在字符串上找到最小的wird,我决定使用len()函数,但每当运行代码时,它都会给我以下错误:
Traceback (most recent call last):
File "main.py", line 4, in <module>
test.assert_equals(find_short("bitcoin take over the world maybe who knows perhaps"), 3)
File "/home/codewarrior/solution.py", line 5, in find_short
if word.len() < l:
AttributeError: 'str' object has no attribute 'len'
这是有缺陷的代码,我真的找不出有什么问题:
def find_short(s):
foo = s.split()
l = 100
for word in foo:
if word.len() < l:
l = word.len()
else:
continue
return l # l: shortest word length
字符串没有
len
属性,可以使用字符串作为参数调用len()
函数。你知道吗为了完整起见,
len
确实有一个method counterpart:这就是
len
独立函数在内部调用的内容。如果实现一个对象并希望它与len
一起工作,那么就为它实现__len__
方法。你知道吗除非你有充分的理由,否则不应该直接使用它。
len
对__len__
返回的数据进行一些检查以确保正确性:如果您直接使用“dunder方法”,您将绕过这些检查。你知道吗
len
是一个函数,而不是一个方法。你知道吗相关问题 更多 >
编程相关推荐