python 谁能解释一下,为什么这个代码不工作

kuuvgm7e  于 2023-04-04  发布在  Python
关注(0)|答案(3)|浏览(125)
class Solution(object):
    def lengthOfLastWord(self,s):
        """
        :type s: str
        :rtype: int
        """
        len=0
        res=0
        print(len(s))
        for i in range(len(s)):
            if s[i] !=" ":
                len+=1
            else:
                res=len
                len=0
        if len!=0:
            return len
        else:
            res
nitesh=Solution()
s='Hello World'
print(nitesh.lengthOfLastWord(s))

错误:

Traceback (most recent call last):
  File "d:\dsa\python\58.py", line 22, in <module>
    print(nitesh.lengthOfLastWord(s))
  File "d:\dsa\python\58.py", line 9, in lengthOfLastWord
    print(len(s))
TypeError: 'int' object is not callable
PS D:\dsa\python>
f5emj3cl

f5emj3cl1#

这是因为您在方法中定义了另一个变量len=0
len(s)现在将导致在int上调用带有变量s的方法。

11dmarpk

11dmarpk2#

适当地命名变量。不要用保留关键字或内置函数命名变量。

class Solution(object):
    def lengthOfLastWord(self, s):
        """
        :type s: str
        :rtype: int
        """
        length = 0
        res = 0
        print(len(s))
        for i in range(len(s)):
            if s[i] != " ":
                length += 1
            else:
                res = length
                length = 0
        if length != 0:
            return length
        else:
            res

nitesh = Solution()
s = 'Hello World'
print(nitesh.lengthOfLastWord(s))
ki1q1bka

ki1q1bka3#

如果你把变量命名为保留关键字或内置函数的名称,那么这将覆盖该关键字或函数的定义。因此,当你使用该关键字或函数时,它将无法根据原始关键字或函数工作。它将仅作为变量工作......这就是为什么错误说,int对象是不可整理的......永远记住,当错误有可整理的词时,它是关于(),如果错误有下标字,它是关于[],因此相应地找到你的解决方案。

相关问题