Создание и вызов модуля

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Есть два файла
Код:
# Rectangle
class Rectangle:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def get_rect_area(self):
        return self.a * self.b
и
Код:
#main
import Rectangle

rect1 = Rectangle(3, 4)
rect2 = Rectangle(12, 5)
print(rect1.get_rect_area())
print(rect2.get_rect_area())

При запуске файла main должен импортироваться файл Rectangle. На реально получаю
rect1 = Rectangle(3, 4)
TypeError: 'module' object is not callable.
При этом
Код:
class Rectangle:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def get_rect_area(self):
        return self.a * self.b
rect1 = Rectangle(3, 4)
rect2 = Rectangle(12, 5)
print(rect1.get_rect_area())
print(rect2.get_rect_area())

Прекрасно работает
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
374
108
43
При запуске файла main должен импортироваться файл Rectangle.
вы пытаетесь импортировать имя модуля "Rectangle" как вызываемый объект, в то время как сам модуль это всего лишь пространство имен. А вот если импортировать класс "Rectangle" из модуля "Rectangle" from Rectangle import Rectangle, тогда все будет ОК.
 
  • Мне нравится
Реакции: robisho, regnor и s591962

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
вы пытаетесь импортировать имя модуля "Rectangle" как вызываемый объект, в то время как сам модуль это всего лишь пространство имен. А вот если импортировать класс "Rectangle" из модуля "Rectangle" from Rectangle import Rectangle, тогда все будет ОК.
спасибо
 

Форум IT Специалистов