[初学] return int类型报错 TypeError: 'int' object is not callable

请教为什么如下编写 return 一个 int 会报错:

TypeError: 'int' object is not callable

而用 lambda 就可以呢?

class Student(object):
    def __getattr__(self, attr):
        if attr == 'age':
            return 25
class Student(object):
    def __getattr__(self, attr):
        if attr == 'age':
            return lambda: 25
阅读 3.7k
1 个回答
student = Student()

# 上面一种
student.age    # 返回 25
student.age()  # 25是数字不是函数,不能执行,报错

# 下面一种
student.age    # 返回匿名函数
student.age()  #  执行这个匿名函数,返回25
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题