You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码报错TypeError: 'int' object is not callable,求解释原因

计算字符串最后一个单词长度的代码报错原因解析

原代码

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>

报错原因

  1. 内置函数名被覆盖:你在函数内定义了名为len的整型变量(len=0),而len是Python自带的内置函数,用来获取字符串、列表等对象的长度。当后续执行len(s)时,Python会把len识别成你定义的那个整数,而整数不能像函数一样被调用,所以触发了TypeError。
  2. 返回值缺失:在else分支中,你只写了res但没有return关键字,这会导致当字符串以空格结尾时,函数不会返回res的值,而是默认返回None。

简单修正示例

把变量名len改成current_len,并补全return语句:

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

内容的提问来源于stack exchange,提问作者NITESH KUMAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:40:02