Использование функции внутри функции - PullRequest
0 голосов
/ 13 января 2019

Итак, у меня есть класс с некоторыми функциями. Я хочу использовать функцию в другой функции для расчета расхода топлива.

У меня есть атрибут self.consump, который вычисляется в функции Calculate_consumption.

Теперь я хочу написать новую функцию, которая обновляет счетчик километров, а также подсчитывает эффективность вашего вождения.

Итак, я хочу рассчитать потребление, используя функцию Claculate_consumption, а затем посмотреть, будет ли оно больше 8 или нет.

Ну, я попытался написать функцию, как я нашел ее здесь, в Stackoverflow: Как вы вызываете функцию в функции?

Но это решение как-то не работает. Может быть, кто-то может указать на мою ошибку.

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!'

Я получаю **NameError** в строке 14 , потому что Calculate_consumption как-то global name.

1 Ответ

0 голосов
/ 13 января 2019

Вы должны написать: a = self.Claculate_consumption(Liter, km) потому что ваша программа не знает, где искать этот метод. Self говорит, что этот метод находится в том же классе, в котором вы вызываете метод

self: self представляет экземпляр класса. Используя ключевое слово «self», мы можем получить доступ к атрибутам и методам класса в python. https://micropyramid.com/blog/understand-self-and-init-method-in-python-class/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...