TypeError: 'builtin_function_or_method'对象没有len()

3 投票
1 回答
39606 浏览
提问于 2025-04-17 20:27

你好,我是一个刚开始学习编程的新手,正在使用代码学院的课程。我在很多地方问过这个问题,也到处搜索过,但还是搞不明白问题出在哪里。

我的目标是验证用户是否回答了问题。以下是我的代码:

print 'Welcome to the Pig Latin Translator!'

raw_input("Enter a word: ")
original = raw_input
if len(original) > 0:
    print original
else: 
    print "empty"

当我运行这段代码并输入一个单词时,它给了我这个错误:

Traceback (most recent call last):
  File "python", line 5, in <module>
TypeError: object of type 'builtin_function_or_method' has no len()

我尝试了很多不同的代码版本,但还是不明白发生了什么。我非常感谢任何建议和帮助。

1 个回答

5

你想要获取 raw_input 这个 函数 的长度。但是你忽略了前面那行代码调用这个函数的实际结果。

>>> len(raw_input)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'builtin_function_or_method' has no len()

你应该把这个函数调用的结果存储到 original 里,而不是直接获取长度:

original = raw_input("Enter a word: ")
if len(original) > 0:
    print original
else: 
    print "empty"

撰写回答