心宁智生 发表于 2023-1-5 15:39:13

请问我这个是哪里出的问题?

请问我这段代码为什么会报错?能否有好心人具体讲一下'xxx' object is not callable这个错误?谢谢各位

tommyyu 发表于 2023-1-5 15:43:16

fun1函数并没有返回值,所以它的返回值就是None,所以fun1()() = ( fun1() ) () = None(),而None是不可运行的,后面也就无法加小括号,所以会报错。将fun1()()改为fun1()即可。

isdkz 发表于 2023-1-5 15:44:39

你要 return 一个函数才能继续调用呀

def fun1():
    x = 880
    def fun2():
      print(x)
    return fun2            # 注意这里
fun1()()

wp231957 发表于 2023-1-5 16:08:04

callable是调用的意思

凡是出现   XXX 对象不可callable   这最大的可能就是你再非函数变量后面添加了括号

>>> x=5
>>> x()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>> x="sss"
>>> x()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
>>> x=print
>>> x("callabled")
callabled
>>>
页: [1]
查看完整版本: 请问我这个是哪里出的问题?