你如何在python中的类中乘以值?

时间:2018-05-26 21:54:18

标签: python class methods

class bread:
    def __init__(self,grain,cost,number):
        self.grain=(grain)
        self.cost=int(cost)
        self.number=int(number)
    def price(self):
        p=self.cost*self.number
        print(p)

apple=bread("wholemeal",int(2),int(12))
print(apple.grain,apple.cost,apple.number)
print (apple.price)

在我输入这段代码后,我应该看到24,但我得到:

  

绑定方法bread.price为< main .bread对象位于0x05CC7430>>

我是oop的新手并开始尝试,但我找不到解决方案。

3 个答案:

答案 0 :(得分:2)

您需要致电price

apple.price()

但是,使用property

可以实现方法的变量属性行为
class bread:
   def __init__(self,grain,cost,number):
    self.grain=grain
    self.cost=cost
    self.number=number
   @property
   def price(self):
     return self.cost*self.number

 apple=bread("wholemeal",2, 12)
 print(apple.price)

答案 1 :(得分:0)

在这种情况下,您似乎不想处理类对象,但只想获得输出。你可以这样做:

class bread:

    def __init__(self, grain, cost, number):

        self.grain = (grain)
        self.cost = int(cost)
        self.number = int(number)

        return self.price()

    def price(self):
        p = self.cost * self.number
        print("%s : %d" % (self.grain, p))

bread("wholemeal", 2, 12)

作为一个初学者,你不应该过多担心像property这样的事情,但要尽可能简单(和冗长)。另外,因为您正在为谷物类型输入,我猜你想要将它与值一起打印出来。

要解压缩我对代码所做的更改,作为一些基本编码实践的示例:

  • 注意功能之间的间距
  • 注意各个项目之间的间距
  • 注意如何使用print()
  • 生成输出

完成所有这些后,我们所要做的就是在__init__内进行我们每次都要做的调用。祝你好运,玩得开心学习python!

答案 2 :(得分:0)

最后打印功能时,实际上需要调用该功能。目前,您只是在对象中获取方法的实例。但是你应该使用括号()来打印它时调用该函数。您也不需要打印函数调用来获取24,因为您已经在函数中打印了数字和成本的输出。但是,如果您确实要打印该函数,则可以在函数中使用返回值。以下是一个例子:

class bread(object):

   def __init__(self, grain, cost, number):
      self.grain = grain
      self.cost = cost
      self.number = number

   def price(self):
      price = self.cost * self.number
      return price

apple=bread("wholemeal", 2, 12)

print(apple.price())

请注意,在代码结束时我们实际上在打印时调用了function()。然后,您将打印该函数的返回值。如果您只想在函数中打印该值,可以调用代码底部的函数而不像这样打印:

apple.price()

然后选择将print语句放在price方法中。你输出的代码是24:

24
相关问题