Skip to main content
 首页 » 编程设计

python之为什么这个方法不返回值

2025年05月04日12myhome

我有以下代码:

class Thing: 
    def __init__(self): 
        self.a = 30 
        self.b = 10 
    def sumit(self): 
        return self.a + self.b 
 
giventhing = Thing 
print(giventhing.sumit/2) 

我收到这个错误:

TypeError: unsupported operand type(s) for /: 'function and 'int' 

请您参考如下方法:

这里有两个问题:

  • sumit 是实例方法,因此您需要在实例上调用它,而不是类(或类型)。
  • 要执行可调用对象,例如方法,您需要使用属性语法,即method(),注意末尾的()。

做 giventhing = Thing 不会给你一个实例,它会给你一个类/类型本身的引用,这只有在你想对类成员进行操作时才有用,这是不是您的用例。

执行giventhing.sumit/2,不会将sumit的结果除以2。事实上,giventhing.sumit会产生对函数本身的引用,而不是它的结果。您需要调用函数以获取其返回值,即 sumit()

固定代码:

giventhing = Thing()          # You need an instance of Thing 
print(giventhing.sumit() / 2) # You need to actually call sumit on the instance