crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Python, раскладывание модулей по разным папочкам
Litkevich Yuriy
  опции профиля:
сообщение 14.11.2010, 1:28
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Подозреваю, что должна существовать возможность раскладывать модули по разным каталогам. Так сказать для удобства.
Но как интерпретатору сказать какие где искать?

пример (есть и файлы с одинаковыми именами но из разных каталогов)

src\
|-- group1\
|      |-- foo.py
|      |-- bar.py
|-- group2\
|      |-- foo.py
|      |-- bar.py
|-- main.py


Теперь задачки:
1) положим, что в main.py нужно импортировать group1\foo.py и group1\bar.py
2) положим, что в main.py нужно импортировать group1\foo.py и group2\foo.py
3) положим, что в main.py нужно импортировать group1\foo.py, а в group1\foo.py импортировать group2\foo.py и group1\bar.py

решаемая ли это задача для Питона?

Например, для многих оберонов - нет, за исключением Оберон-2
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Novak
  опции профиля:
сообщение 14.11.2010, 14:45
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 319
Регистрация: 15.3.2008
Из: Замкадыш
Пользователь №: 121

Спасибо сказали: 28 раз(а)




Репутация:   6  


А что в нём? Если добавить src в pythonpath, то при импорте будет происходить поиск указанных модулей и в этой папке.
Потому конструкция
import group2.foo

Будет работать и в group1\foo.py
Вот пример main.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from group1.foo import Cat
from group1.foo import Dog
from group1.foo import AnotherDog


cat = Cat("Murka")
cat.get_name()
dog = Dog("Barbos")
dog.get_name()
puppy = AnotherDog("Sharik")
puppy.get_name()

Всё импортируется, остальные файлы прикрепил.
Результат такой:

/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 /Users/novak/prog/src/main.py
__init__ in group1
__init__ in group2
Cat in group1.foo Murka
Dog in group2.foo Barbos
Dog in group1.bar Sharik
Прикрепленные файлы
Прикрепленный файл  src.zip ( 9,7 килобайт ) Кол-во скачиваний: 147
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.11.2024, 9:33