Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python: как избежать импорта подключённых для реализации модулей / 5 сообщений из 5, страница 1 из 1
12.12.2013, 16:24
    #38498828
PyAuthor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python: как избежать импорта подключённых для реализации модулей
имеется файл classes.py, который содержит множество нужных классов.
реализация функций классов требует подключения модуля funcs.py
как организовать импорт из файла classes.py, чтобы не импортировались функции, импортированные в него для реализации?

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
#module funcs.py:
# - содержит полезный мусор

#module classes.py:
from funcs import *

class A:
#using functions from funcs.py
.....

class B:
#using functions from funcs.py
.....

class C:
#using functions from funcs.py
.....


#python shell:
>>> from classes import *
#импортировались классы
# и импортировался мусор из funcs.py
...
Рейтинг: 0 / 0
13.12.2013, 08:42
    #38499478
FishHook
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python: как избежать импорта подключённых для реализации модулей
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#module classes.py:

__all__ = ("A",  "B")

class A:
#using functions from funcs.py
.....

class B:
#using functions from funcs.py
...
Рейтинг: 0 / 0
13.12.2013, 10:25
    #38499619
PyAuthor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python: как избежать импорта подключённых для реализации модулей
FishHook
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#module classes.py:

__all__ = ("A",  "B")

class A:
#using functions from funcs.py
.....

class B:
#using functions from funcs.py


спасибо,

А вот улучшенная версия:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#module classes.py:

class A:
#using functions from funcs.py
.....

class B:
#using functions from funcs.py

def classnamesOfCurrentModule():
    import sys
    import inspect
    m=sys.modules[__name__]
    return map(lambda pair: pair[0],filter(lambda pair: inspect.isclass(pair[1]),m.__dict__.items()))
    
__all__=classnamesOfCurrentModule()
...
Рейтинг: 0 / 0
13.12.2013, 19:30
    #38500535
FishHook
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python: как избежать импорта подключённых для реализации модулей
А разъясните суть улучшений, плиз.
...
Рейтинг: 0 / 0
16.12.2013, 11:24
    #38501884
PyAuthor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python: как избежать импорта подключённых для реализации модулей
FishHookА разъясните суть улучшений, плиз.
а в том, что не надо список классов вручную определять
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python: как избежать импорта подключённых для реализации модулей / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]