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新手,开始尝试,但我找不到解决方案。在
在最后打印函数时,实际上需要调用该函数。目前您只是在对象中获取方法的实例。但打印时应该使用括号()来调用函数。您也不需要打印函数调用来获取24,因为您已经在函数中打印了number和cost的输出。但是如果你想打印这个函数,你可以在你的函数中使用一个返回值。下面是一个例子:
请注意,在代码的末尾,我们实际上在打印时调用了函数()。然后打印函数的返回值。如果只想打印函数内的值,可以调用代码底部的函数,而不必像这样打印:
^{pr2}$然后选择将print语句放入price方法中。上面代码的输出24:
您需要致电
price
:但是,可以使用
^{pr2}$property
实现方法的可变属性行为:在这种情况下,您似乎不想处理类对象,而只想获得输出。你可以这样做:
作为一个初学者,你不应该太担心像
property
这样的事情,但要尽量简单(冗长)。另外,因为输入的是grain类型,所以我猜您希望将其与值一起打印出来。在要将我对代码所做的更改作为一些基本编码实践的示例:
一旦所有这些都完成了,我们所要做的就是在
__init__
内,每次都打电话给自己。祝你好运,祝你学习python愉快!在相关问题 更多 >
编程相关推荐