Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2022, 07:27   #1
Andrew221
 
Регистрация: 15.03.2022
Сообщений: 5
По умолчанию Класс не видит атрибут

Всем привет. Решил сделать микро unit-test для методов по расчету объема фигур. Вопрос: почему тестовый класс не видит атрибут calc(я же в setup определяю его)


Вот код:

Код:
import unittest#подключаем unittest

import math

PI = math.pi


class calculate:

    def cone(r, h, e):

        answer = r * r * PI * h * 1/3  # вычисляем ответ

        tem = '{:.' + e + 'f}'  # шаблон точности

        return tem.format(answer)



    def cylinder(r, h, e):

        answer = r * r * PI * h  # вычисляем ответ

        tem = '{:.' + e + 'f}'  # шаблон точности

        return tem.format(answer)


    def cube(h, e):

        answer = h * h * h

        tem = '{:.' + e + 'f}'

        return tem.format(answer)


    def sphere(r, e):

        answer = r*r*r*PI*4/3

        tem = '{:.' + e + 'f}'

        return tem.format(answer)



class Mytest(unittest.TestCase):

    def setup(self):

        self.calc = calculate()


    def test_cone(self):

      self.assertEqual(self.calc.cone(4, 7, 3), "")


    def test_cylinder(self):

      self.assertEqual(self.calc.cylinder(10, 5, 3), "")


    def test_cube(self):

      self.assertEqual(self.calc.cube(3, 2), "27.00")


    def test_sphere(self):

      self.assertEqual(self.calc.sphere(10, 2), "")



if __name__ == "__main__":# если главный код, то запуск теста

  unittest.main()

Использую PyCharm 2022, интепретатор - python 3.9


Заранее спасибо за помощь
Andrew221 вне форума Ответить с цитированием
Старый 05.06.2022, 07:36   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Потому что питон регистрозависимый язык. setup и setUp - разные функции. Не забудьте еще добавить первым аргумент self во все методы класса calculate и разобраться с формированием строки-шаблона точности.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 05.06.2022, 11:30   #3
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
setup и setUp - разные функции.
Разве PyCharm не должен был это подсветить?
Valick вне форума Ответить с цитированием
Старый 05.06.2022, 20:00   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Valick, так запрета на добавление своего метода setup нет. Просто автоматически будет вызываться только setUp (или определенный в своем классе, или пустой - из класса TestCase). В теории среда разработки могла бы выдавать сообщение-подсказку, но ошибки с точки зрения языка нет.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 05.06.2022, 20:04   #5
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

BDA, я работаю в Phpstorm там если метод класса нигде не используется, то он выделен серым цветом. Возможно у ТС не настроен проект.
Valick вне форума Ответить с цитированием
Старый 05.06.2022, 20:39   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Valick, про подсветку неиспользуемых не подумал. Похоже, что в PyCharm такого функционала нет.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не видит класс из другого файла? CraZZZy-GameRRR Общие вопросы C/C++ 5 12.10.2018 22:22
ChromeDriver не видит элементы. А GeckoDriver видит. DedPerded Общие вопросы Web 2 17.08.2018 12:22
Не видит класс ser70 Общие вопросы по Java, Java SE, Kotlin 4 12.10.2015 07:31
компилятор MinGW в NetBeans не видит класс потока (thread) bratcho Общие вопросы C/C++ 5 03.09.2015 09:31
Класс не видит обЪект Borland C++ Builder firefox0013 C++ Builder 11 01.10.2009 17:30