Прикрепление временного пространства имен к пути поиска

Этот вопрос является своего рода продолжением этогосообщение Насколько я'Я до сих пор не совсем убежден, что в отношении надежности кода это нелучше печататьnamespace::foo() привычка вместо того, чтобы просто печататьfoo() и молясь, вы получите желаемый результат ;-)

Актуальный вопрос

Я знаю, что это идет вразрез с "стандартные соглашения R ", но пустьпросто скажи ямне любопытно ;-)Можно ли как-то прикрепить временное пространство имен к пути поиска?

мотивация

В момент, когда мой пакетmypkg все еще в "этап разработки " (Т.е.пока не настоящий пакет R):Я'

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

я прекрасно осознаю, что звонит:: имеет свои недостатки (это занимает больше времени, чем просто ввод функции 's имя и позволить R обрабатывать поиск неявно) и / или могут не считаться необходимыми из-за способаа) R просматривает путь поиска иб) пакеты могут импортировать свои зависимости (т. е. используя "Импорт» вместо "Зависит", не экспортируя определенные функции и т. д.). Но я'я видел мой код по крайней мере дважды из-за того, что некоторые пакеты перезаписали определенные (базовые) функции, поэтому я перешел от "слепое доверие к "Лучше быть в безопасности, чем потом сожалеть" Режим ;-)

Что я пробовал

AFAIU, пространства имен в принципе не что иное, как какая-то особая среда

> search()
[1] ".GlobalEnv"        "package:stats"     "package:graphics" 
[4] "package:grDevices" "package:utils"     "package:datasets" 
[7] "package:methods"   "Autoloads"         "package:base"     

> asNamespace("base")

И там'сattach() функция, которая прикрепляет объекты к пути поиска. Так вот'Что я думал?

temp.namespace  asNamespace("temp.namespace")
Error in loadNamespace(name) : 
  there is no package called 'temp.namespace'

Я думаю, мне как-то приходится работатьattachNamepace() и выяснить, что это ожидает, прежде чем он вызывается вlibrary(), Есть идеи?

РЕДАКТИРОВАТЬ

С уважением к Хэдликомментарий: я бы на самом деле нене важно, является ли подключенная среда полноценным пространством имен или просто обычной средой, если я могу расширить:: сохраняя при этомсинтаксическое сосание " особенность (т.е. возможность звонитьpkg::foo() вместо"::"(pkg="pkg", name="foo")()).

Это как функция"::" похоже:

> get("::")
function (pkg, name) 
{
    pkg 

Ответы на вопрос(1)

Ваш ответ на вопрос