所以我有一个带有某些功能的类。我想在另一个函数中使用一个函数来计算燃油消耗。
我具有self.consumption属性,该属性是在函数 Calculate_consumption
中计算的。
现在,我想编写一个新功能,该功能将更新公里数计数器并计算您是否提高了驾驶效率。
因此,我想通过使用函数 Claculate_consumption
计算消耗量,然后查看它是否大于8。
好吧,我试图只写函数,就像我在Stackoverflow上找到的那样:How do you call a function in a function?
但是该解决方案不起作用。也许有人可以指出我的错误。
class Car:
def __init__(self, kmDigit):
self.kmDigit = int(kmDigit)
self.Max = 8
self.consumption = 0
def Claculate_consumption(self, Liter, km):
self.consumption += (Liter/km)*100
return round(self.consumption, 2)
def Refuel(self,Liter, km):
self.kmDigit += km
print self.kmDigit
a = Claculate_consumption(Liter, km)
if a > self.Max:
b = self.consumption - self.Max
print 'Your fuel consumption is too high!'
else:
print 'Nice!'
我在 第14行 中收到一个**NameError**
,因为Calculate_consumption
在某种程度上是global name
。
答案 0 :(得分:3)
您必须写:a = self.Claculate_consumption(Liter, km)
因为您的程序不知道在哪里寻找该方法。 自我说,该方法与您调用该方法的类别相同
self:self表示类的实例。通过使用“ self”关键字,我们可以在python中访问该类的属性和方法。 https://micropyramid.com/blog/understand-self-and-init-method-in-python-class/