gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:30 25 4
gpt4 key购买 nike

我有以下代码:

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

关于python - 为什么这个方法不返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51913931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com