Я не волновался бы об эффективности загрузки модуля впереди слишком много. Память, поднятая модулем, не будет очень большой (предположение, что это является достаточно модульным), и стоимость запуска будет незначительна.
В большинстве случаев Вы хотите загрузить модули во главе исходного файла. Для кого-то читающего Ваш код, это делает намного легче сказать, какая функция или объект прибыли из какой модуль.
Одно серьезное основание импортировать модуль в другое место в коде состоит в том, если это используется в отладочном операторе.
, Например:
do_something_with_x(x)
я мог отладить это с:
from pprint import pprint
pprint(x)
do_something_with_x(x)
, Конечно, другая причина импортировать модули в другое место в коде состоит в том, если необходимо динамично импортировать их. Это вызвано тем, что у Вас в значительной степени нет выбора.
я не волновался бы об эффективности загрузки модуля впереди слишком много. Память, поднятая модулем, не будет очень большой (предположение, что это является достаточно модульным), и стоимость запуска будет незначительна.
Вы должны послать ему Контекст - не пытайтесь сбежать от своих обязанностей. :) Ваш служебный класс должен вызываться Activity или Service на каком-то уровне, и вы собираетесь передавать этот Context на всем протяжении строки, через каждый вызов метода. Я знаю, что это раздражает, мне приходилось делать подобные вещи самому. Считайте это стимулом к тому, чтобы ваш код оставался простым и требовал как можно меньше вызовов методов для достижения чего-либо.
I use the following Hack: http://www.hasemanonmobile.com/2009/10/05/quick-and-very-dirty-android-development-trick/
Essentially you stash off a context pointer as a static variable inside your Activity. I'd only recommend this ugly hack if you're on a tight deadline.
Further, if you're writing a utility class, you should probably require (as many Android utilities require) that the calling application provide you with a context as part of your constructor.
Можно создать контекст:
Context myContext = createPackageContext("com.example", 0);