импортируемый модуль выдает ошибку

wan

Новичок
Пользователь
Май 2, 2020
3
0
1
Всем привет. Проблема в следующем...
Есть Class A() и есть метод в котором я обращаюсь к экземплярам класса напрямую..в конце под кодом if __name__=__main__ созданы два экземпляра класса
ekz=А(arg)
ekz2=A(arg)

Сама по себе программа работает отлично, но когда я ее ипортирую в другой проект,
в методах где идет обращение к экземплярам класса напрямую
Просто пишет ekz не найден, хотя в новом проекте экземпляры названы теми же именами
Что сделать чтоб все заработало
 

root

Пользователь
Пользователь
Апр 29, 2020
60
14
8
Москва
Если я правильно тебя понял, то ты вызываешь данные экземпляры из нового проекта? А сами по себе экземпляры создаются только в импортируемом файле?
Если так, то могу предположить, что причина в том, что ты не дописываешь название импортируемого файла к переменной, например:
Python:
import yourfile

yourfile.ekz.method()
# вместо ekz.method()

Еще как вариант попробуй убрать if __name__ == "__main__", по-скольку код по факту не запускается, а импортируется. И оставь просто создание экземпляров
 

wan

Новичок
Пользователь
Май 2, 2020
3
0
1
Если я правильно тебя понял, то ты вызываешь данные экземпляры из нового проекта? А сами по себе экземпляры создаются только в импортируемом файле?
Если так, то могу предположить, что причина в том, что ты не дописываешь название импортируемого файла к переменной, например:
Python:
import yourfile

yourfile.ekz.method()
# вместо ekz.method()

Еще как вариант попробуй убрать if __name__ == "__main__", по-скольку код по факту не запускается, а импортируется. И оставь просто создание экземпляров
Импортировал так: from myfile import * Дальше просто скопировал экземпляры из модуля и изменил аrg.
Убрать if name==main не могу так как мне нужно передать другие аргументы через
ekz=A(arg)
 

wan

Новичок
Пользователь
Май 2, 2020
3
0
1
Для наглядности разделил чертой, над чертой модуль который сам по себе работает.под чертой программа куда он импортируется и поднимается ошибка ekz не найдена
Screenshot_2020-05-02-11-33-09-372_ru.iiec.pydroid3.jpg
 

root

Пользователь
Пользователь
Апр 29, 2020
60
14
8
Москва
Для наглядности разделил чертой, над чертой модуль который сам по себе работает.под чертой программа куда он импортируется и поднимается ошибка ekz не найдена
Посмотреть вложение 150
Функция prin в классе, у тебя используется переменная ekz, но она по факту не объявлена. Может стоит в аргументах использовать self, а далее self.arg
 
  • Мне нравится
Реакции: borntohack

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