在python中,如何在类中乘法值?

2024-05-18 12:34:14 发布

您现在位置:Python中文网/ 问答频道 /正文

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,但是我得到了:

bound method bread.price of <main.bread object at 0x05CC7430>>

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


Tags: 代码selfnumberappleinitdefpriceclass
3条回答

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

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())

请注意,在代码的末尾,我们实际上在打印时调用了函数()。然后打印函数的返回值。如果只想打印函数内的值,可以调用代码底部的函数,而不必像这样打印:

^{pr2}$

然后选择将print语句放入price方法中。上面代码的输出24:

24

您需要致电price

apple.price()

但是,可以使用property实现方法的可变属性行为:

^{pr2}$

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

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这样的事情,但要尽量简单(冗长)。另外,因为输入的是grain类型,所以我猜您希望将其与值一起打印出来。在

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

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

一旦所有这些都完成了,我们所要做的就是在__init__内,每次都打电话给自己。祝你好运,祝你学习python愉快!在

相关问题 更多 >

    热门问题