Каковы эффективные методы для импорта модулей Python? - PullRequest
0 голосов
/ 12 ноября 2010

Я пишу некоторые представления в Django, на самом деле это просто функции Python.Мне любопытно, есть ли лучший способ для меня организовать свои файлы.

Это ...

import a, b
def x(request): return a(request)
def y(request): return b(request)

Менее эффективно, чем поместить его в два файла?

import a
def x(request): return a(request)

и

import b
def y(request): return b(request)

Поскольку для каждого сделанного запроса будет вызываться только одна из этих функций, мне кажется, что наличие другой в одном файле и импорт всех модулей другойнужна плохая идея.Я прав?В любом случае, django просто импортирует весь лот?

Ответы [ 4 ]

3 голосов
/ 12 ноября 2010

Если вы не запускаете Django через CGI (что я действительно надеюсь, что вы этого не сделаете), импорт будет кэшироваться после первого выполнения, и весь этот аргумент не имеет смысла.

2 голосов
/ 12 ноября 2010

Разницы не так много, используйте то, что наиболее читабельно.

0 голосов
/ 12 ноября 2010

Кроме того, вместо этого:

def x(request): return a(request)

вероятно, было бы лучше вызвать исходную функцию.

0 голосов
/ 12 ноября 2010

Вам не нужно беспокоиться о том, сколько файлов вы используете;разница в производительности незначительна.Тем не менее, существуют более эффективные и удобочитаемые способы использования импорта.

Импортируйте только то, что вам нужно;никогда не используйте from x import *, если вы действительно не собираетесь использовать все в X. Не вкладывайте импорт;вместо import a, b напишите:

import a
import b

Что касается вашей конкретной проблемы, у вас должен быть модуль для представления типичного курса действий.Если вам всегда нужно запускать две функции, одну за другой, поместите их в один и тот же файл.Если нет, делайте все, что в ваших силах, с людьми, с которыми вы работаете.Помните, что импорт в виде import a (в отличие от from x import y, z) относительно дешев.

...