Class Python类方法给出了意外的;“绑定实例”;消息而不是结果

Class Python类方法给出了意外的;“绑定实例”;消息而不是结果,class,python-2.7,Class,Python 2.7,通过使代码更加面向对象来练习整理代码。我有以下目标,我正在努力学习两件事。首先,如何有效地构建一个类,以使诸如get_custard之类的辅助函数能够工作,其次,如何使用诸如stubby之类的方法,这些方法是类内部的,但不向实例的用户公开 class rhubarb(): def __init__(self, a, b): self.a = a self.b = b self.custard = None def get_cust

通过使代码更加面向对象来练习整理代码。我有以下目标,我正在努力学习两件事。首先,如何有效地构建一个类,以使诸如
get_custard
之类的辅助函数能够工作,其次,如何使用诸如
stubby
之类的方法,这些方法是类内部的,但不向实例的用户公开

class rhubarb():
    def __init__(self, a, b):
        self.a = a
        self.b = b
        self.custard = None

    def get_custard(self,a,b):
        custard = stubby(a,b)
        return custard

    def stubby(a,b):
        stub = a + b
        return stub
我得到的不是一个和,而是以下结果

meal = rhubarb(1,2)
meal.get_custard

<bound method rhubarb.get_custard of <__main__.rhubarb instance at 0x7f6b2eb49518>>
膳食=大黄(1,2)
吃饭,吃奶油冻
在附加注释之后,当我将该方法插入括号时,会出现这些附加错误

fine.getcustard()
给了我
TypeError:get\u custard()正好接受3个参数(1个给定)
fine.getcustard(1,2)
给了我
name错误:未定义全局名称“stubby”


谁能告诉我我错过了什么吗。谢谢

这里是没有冗余属性/方法的工作代码(并且符合以下要求):

注意使用
self
访问属性;同样的语法用于访问方法(例如,
self.get\u custard()
)。使用中:


注意使用括号
()
调用该方法。

以下来自@jornsharpe应答工作代码的代码如下所示:

class rhubarb():
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def get_custard(self):
        a = self.a
        b = self.b
        return self.stubby(a,b)

    def stubby(self, a,b):
        return a + b

额外评论已及时更正

谢谢@jornsharpe,不过我还是收到了更多错误。因此,fine.getcustard()给了我
TypeError:get_custard()正好接受了3个参数(1个给定)
fine.getcustard(1,2)
给了我
namererror:global name'stubby'没有定义
我知道这对大多数人来说似乎很基本,但对我来说似乎很违反直觉。谢谢@jornsharpe。在实际的代码中,我需要像stubby方法这样的东西,我不需要在类之外使用它,但需要另一个函数调用它。你能告诉我怎么做吗?@TahnoonPasha我已经在我的回答中对这一点发表了评论-你为什么不自己努力想一想呢?我会继续尝试,尽管经过一个小时的努力,我似乎无法让它工作。谢谢你的帮助@jornsharpe。这还远远不够。非常感谢你刚刚收到。再次感谢你。为了完整性,将添加到主要问题。@TahnoonPasha请不要在问题中包含答案。如果您有单独的答案,您可以添加自己的答案。该代码没有意义-
stubby
忽略其参数
a
b
,只使用实例属性
self.a
self.b
(您可以很容易地测试这一点-看看当您从
get_custard
传递不同的参数时会发生什么情况)。如果只使用实例属性,那么给方法参数是没有意义的。此外,您不需要指定临时变量;例如,只需
返回self.a+self.b
>>> meal = Rhubarb(1, 2)
>>> meal.get_custard()
3
class rhubarb():
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def get_custard(self):
        a = self.a
        b = self.b
        return self.stubby(a,b)

    def stubby(self, a,b):
        return a + b