Котаны, приветствую!

Спешу сообщить, что Лаборатория свободных технологих объявляет о старте нового проекта с кодовым названием “Project T”. Он будет использовать таблицы для хранения данных. Как только будет готова первая версия, прикручу SQLite-базу. Исходный код будет открыт. Лицензия GPLv2. Для оффтопика буду распространять в виде exe-файла полноценной программы. Так что все смогут принять участие в её тестировании. Так же я должен буду изучить способы автотетирования с использованием Python’а, на этом проекте. Программу буду использовать в своём сервисе. Так же она послужит портфолио, если буду устраиваться на работу на дядю тестировщиком или кодером, если клюентов у моего сервиса не будет. Потом подумаем вместе, какое название ей придумать с использованием буквы ё - это обязательно.

Есть ли понятие класса в Python’e? Мне сразу проектировать его как ООП или в скриптовом языке это невозможно?

  • xwickedOP
    link
    fedilink
    arrow-up
    0
    ·
    2 months ago

    Стив Баллмер врывается на сцену и, прыгая в диком угаре, орет: «recursion, recursion, recursion!!!»

    Да, я походу это понял и теперь пытаюсь эту рекурсию побороть глобальной переменной со счётчиком, но не могу никак её объявить. Во всех местах уже пихал - не видит. Думает что она локальная и всё.

    iCount = iCount + 1
                 ^^^^^^
    UnboundLocalError: cannot access local variable 'iCount' where it is not associated with a value
    
    • Anoxemian
      link
      fedilink
      arrow-up
      0
      ·
      2 months ago

      Тебе надо сделать выход из функции, если значение не менялось.

      • xwickedOP
        link
        fedilink
        arrow-up
        0
        ·
        2 months ago
           def slotCellChanged(self, i, j):
                iHours = 0
                iTotal = 1
                iCostHours = int(self.leCostHours.text())
                s = self.tableWidget.item(i, iHours).text()
                if s.isdigit() == True:
                    if int(s) > 15:
                        s = str(15)
                        self.tableWidget.item(i, iHours).setText(s)
                    s = str(int(s) * iCostHours)
                    if self.iCount < 2:
                        self.iCount = self.iCount + 1
                        self.tableWidget.item(i, iTotal).setText(s)
                else:
                    self.tableWidget.item(i, j).setText("")
        
            def slotCellClicked(self, i, j):
                self.iCount = 0
                iHours = 0
                iTotal = 1
                if j == iTotal:
                    self.tableWidget.setCurrentCell(i, iHours)
        

        Под конец дня победил глобальной переменной iCount. Обращение через self почему-то. :D