#python #debugging
#python #отладка
Вопрос:
Я довольно новичок в python и объектно-ориентированном программировании.
Я создаю класс на Python, если у вас есть название смеси и ингредиенты, такие как матрица. В каждой строке есть «Название солода», «Количество солода», «Время добавления солода»
Ниже вы можете увидеть код
class MaltMix:
def __init__ (self, **kwargs):
self._mixName = kwargs['name'] if 'name' in kwargs else "Malt Mix Name"
self._maltMatrix = []
def show(self):
print("Name of the Mix: {}".format(self._mixName))
print("Number of Different Malts: {}".format(len(self._maltMatrix)))
print("Mix Info: {}".format(self._maltMatrix))
def add(self, mName, mQuantity, mTime):
self._maltMatrix.append([mName, mQuantity, mTime])
def main():
mix1 = MaltMix(name = "First Malt Mix Name")
mix1.show()
mix1.add("Malt1", "10", "00:45:00")
if __name__ == '__main__':
main()
Вывод кажется правильным, хотя последняя строка красная. Есть причина, почему?
Вывод:
Name of the Mix: First Mix
Quantity of Different Malts: 0
Mix Info: []
Name of the Mix: First Mix
Quantity of Different Malts: 1
Mix Info: [['Malt1', '10', '00:45:00']]
Name of the Mix: First Mix
Quantity of Different Malts: 2
Mix Info: [['Malt1', '10', '00:45:00'], ['Malt2', '20', '03:45:00']]
Name of the Mix: First Mix
Quantity of Different Malts: 2
**Mix Info: [['Malt1', '10', '00:45:00'], ['Malt2', '20', '03:45:00']]**
Комментарии:
1. В зависимости от используемого вами редактора / компоновщика строка может быть помечена, потому
main()
что функция вызывается в той же строке,if
что и . Хотя это не синтаксическая ошибка, линтер сообщает вам, что это не очень хорошая практика, отмечая строку. Обычно появляется подсказка / всплывающее окно, в котором сообщается, почему код является markde.2. В качестве отступа:
self._mixName = kwargs.get('name', 'Malt Mix Name')
3. Я просто хочу сказать спасибо за вашу поддержку!