def SetLength(passedString):
wordlength = passedString.split()
print(passedString)
print(len(wordlength))
SetLength("Python code to count the words")
这是我的代码来计算字符串中的单词现在这个工作正常,但是当我设置
时str = None
SetLength(str)
这显示像这样的错误
'NoneType' object has no attribute 'split'
有人可以帮助我吗?
答案 0 :(得分:0)
首先,您应该指定SetLength()的确切功能。当用参数None调用它应该做什么?
如果它应该处理这个,请相应地更改实现。
如果不允许,则相应地更改呼叫代码。
答案 1 :(得分:0)
快速解决方案是添加if:
...
if not passedString:
passedString = ""
...
当然,这也可以在致电SetLength()
之前完成,这样如果SetLength()
为无,您就不会致电passedString
。
答案 2 :(得分:0)
错误完全有效。
你不能在None对象上调用.split,因为它没有该属性。
你需要做两件事之一:
您可以检查对象是否为" truthy":
即:
def SetLength(passedString):
if passedString:
wordlength = passedString.split()
return len(wordlength)
# if it's none, it will come here...
# you probably want to return 0 as the length of words at that point
return 0
注意:对于空字符串,这也将返回0"&#34 ;;预期
您可以使用" isinstance"确保对象是一个字符串:
即:
def SetLength(passedString):
if isinstance(passedString, str):
wordlength = passedString.split()
return len(wordlength)
# if it's none, it will come here...
# you probably want to return 0 as the length of words at that point
return 0