Python 对象定向-返回一个值

Python 对象定向-返回一个值,python,Python,这是我的密码 我想找到总秒数(持续时间(3,30))。总秒数应该给我210,但现在我得到了这个 如何获取210?您的方法没有问题,只是您必须调用该方法,而不是获取它: class Duration(object): def __init__(self, minutes, seconds): self.minutes = minutes self.seconds = seconds def get_minutes(self): re

这是我的密码

我想找到总秒数
(持续时间(3,30))。总秒数
应该给我
210
,但现在我得到了这个


如何获取
210

您的方法没有问题,只是您必须调用该方法,而不是获取它:

class Duration(object):
    def __init__(self, minutes, seconds):
        self.minutes = minutes
        self.seconds = seconds

    def get_minutes(self):
        return self.minutes
    def get_seconds(self):
        return self.seconds
    def total_seconds(self):  #This part is wrong 
        return 60*(self.get_minutes()) + self.get_seconds()
注意
total_seconds()
not
total_seconds
当您在不使用
()
的情况下调用它时,python会返回方法实例,但不会调用它。

这应该是

>>> print((Duration(3, 30)).total_seconds())
210

在python中,函数是对象,可以打印。这就是您所看到的。

如果您想跳过括号,请将
总秒数设置为a:

现在它正是您想要的:

@property
def total_seconds(self):

这是对的。原来的代码是正确的,只是调用它的
print
是错误的。好吧,那么如果我想要(持续时间(3,30))。总秒数)?@user3398505,这就是它将给出的。你的电话不正确。我所展示的是正确的。相同的结果。@user3398505:如果要将该方法视为属性,请使用
@property
decorator。total_seconds是一个方法,您不会调用它。您正在获取对它的引用。请删除
get
方法,因为您已经可以很好地访问
seconds
minutes
@property
def total_seconds(self):
>>> Duration(3, 30).total_seconds
210