Найти - Пользователи
Полная версия: Import своего класса
Начало » Python для новичков » Import своего класса
1
exeplor
Жаль конечно что в питоне невозможно подключать части кода как в пхп, но и без этого я нашел себе проблему.
Я хочу импортировать файл .py в котором есть мой класс.

files \ stand.py << в этот файл я хочу импортировать files \ include \ dop_info.py

Прописал пути, все импортирует отлично, но почему то при попытке вызвать какую либо функцию или класс, в ответ я получаю что такой объект не найден (

Message File Name Line Position
Traceback
<module> C:\files\stand.py 5
exceptions.AttributeError: ‘module’ object has no attribute ‘my_class’


Пожалуйста скажите каким образом я могу подключать свои классы? А главное, можно ли как то подключить не проописывая полностью путь, а исходя от родительской папки?
Infernus
Можете выложить кусок кода, в котором происходит exception?
exeplor
>>> import testes #(пути прописаны, файл импортируется правильно)

>>> try: print testes.my_function() # функция возвращает “hello”
>>> except Exception, e: print e

'module' object has no attribute ‘my_function’
Infernus
Не хочу показаться банальным, но раз import успешный, то проверьте наличие метода с именем “my_function” в модуле testes и правильность написания названий вообще. Либо, если это метод класса, то инициализировать объект класса и вызвать из него этот метод, а не из модуля.
agalen
Бывают ситуации, когда тело модуля еще не выполнено, а к нему уже обращаются.
Пример:
## a.py
import b
x = 1
## b.py
import a
print a.x
## main.py
import a
# Будет исключение !!!
sp3
import testes
reload(testes)

мжт старая версия testes не содержит my_function

print dir(testes) # покажет что есть внутри
scailfon
У меня тоже вопрос насчет подключения своих классов. Есть несколько классов и функций, которые реализованы в отдельных *.py файлах. Есть главный файл проекта, который использует эти классы и функции. Проблема заключается в следующем: Каждый раз перед запуском главного файла мне приходится перекомпилировать файлы, содержащие реализации классов и функций, подключаемых к главному файлу, а затем уже запускать и его. Проект растет и такая перекомпиляция всех файлов становится затратным занятием. В чем может быть проблема, что главный файл сначала не видит остальные и как ее решить? Ответ хотелось бы получить asap.
doza_and
scailfon
мне приходится перекомпилировать файлы
А как вы это делаете? (*.pyc фалы нужны чтоли?)
a.py:
import b
print b.a
b.py:
a=2
Питон видит файлы которые лежат с ним в одной директории и которые найдет в PYTHONPATH. Для проектов в нескольких директориях надо делать пакеты (см http://docs.python.org/tutorial/modules.html)
scailfon
doza_and) спасибо за линк http://docs.python.org/tutorial/modules.html, Я подключала файлы как import <имя файла>, в котором определены функции и классы. Сейчас я стала использовать from <имя файла> import < имя класса/ф-ции> и заработало. Думаю эти методы просто были не видны, когда я делала import всего файла, а не определения классов/ ф-ций, потому как вызывала их в главном файле без указания имени модуля, в котором классы/методы содержались. Спасибо за помощь!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB