2010-12-14 5 views
0

У меня есть около 80 строк функции в файле. Мне нужна такая же функциональность в другом файле, поэтому я в настоящее время импортирую другой файл для этой функции.Импортирует файл в Python

Мой вопрос заключается в том, что с точки зрения времени работы на машине, какая техника будет лучше: - импортировать полный файл и запустить функцию или скопировать функцию, как она есть, и запустить ее из того же пакета.

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

+6

Вы действительно спрашиваете, следует ли импортировать модули в python? http://docs.python.org/tutorial/modules.html – Falmarri

+2

Давай, ты * не можешь * быть серьезным ... пожалуйста? – delnan

+0

Копирование и вставка - это почти самая дорогостоящая ошибка программирования, которую вы можете сделать. Удвоение объема кода более чем удваивает стоимость обслуживания. Почему вы считаете копирование и вставку? Что заставило его показаться хорошей идеей? Просьба подробно рассмотреть призыв к копированию и вставке. –

ответ

4

Импорт - это то, как вы должны это делать. Вот почему это возможно. Производительность - сложный вопрос, но в целом это действительно не имеет значения. Люди, которые действительно, действительно нуждаются в производительности, и не могут быть удовлетворены просто исправлением базового алгоритма, не используют Python в первую очередь. :) (По крайней мере, не для крошечной части проекта, где производительность действительно имеет значение.;))

+0

Это. Ты подтолкнул меня на это. – nmichaels

1

Импорт - это хорошая причина, потому что это помогает вам легко управлять вещами. Что делать, если вам нужна такая же функция снова? Вместо внесения изменений в нескольких местах есть только одно централизованное местоположение - ваш модуль.

В случае, если функция мала и вам больше не понадобится нигде, поместите ее в файл.

Если он сложный и требует повторного использования, отделите его и поместите в модуль.

Эксплуатационные характеристики не должны беспокоить вас. Это не имеет большого значения. И даже если это так, спросите себя - это для вас важно?

+0

«Что делать, если вам нужна была такая же функция снова?«Точно, но что еще важнее: что, если вы уже используете его в нескольких местах, но теперь вы нашли ошибку? Если бы вы правильно организовали вещи, вам нужно было бы только один раз исправить это. –

+0

Да, правда что. – user225312

0

Copy/Paste не может быть лучше. Импорт влияет на производительность загрузки, а не на время выполнения (если вы импортируете его на верхнем уровне).

0

Весь смысл импорта - разрешить повторное использование кода и организацию.

Помните также, что вы можете сделать либо

import MyModule 

получить весь файл или

from MyModule import MyFunction 

для того, когда вам нужно только ссылки, что одной части модуля.

0

Если два модуля не связаны друг с другом, за исключением этой общей функции, вы можете рассмотреть возможность извлечения этой функции (и, возможно, других вещей, связанных с этой функцией) в третий модуль.

Смежные вопросы