Что происходит, здесь назван агрегат инициализация. Вот является (сокращенное) определение агрегата от раздела 8.5.1 из спецификации ISO:
агрегат является массивом или классом без объявленных пользователями конструкторов, никакого частного или защитил нестатические элементы данных, никакие базовые классы и никакие виртуальные функции.
Теперь, с помощью {0}
для инициализации агрегата как это в основном прием к 0
вся вещь. Это вызвано тем, что при использовании совокупной инициализации Вы не должны определять всех участников , и спецификация требует, чтобы все неуказанные участники были инициализированным значением по умолчанию, что значит набор для 0
для простых типов.
Вот соответствующая кавычка от спецификации:
, Если в агрегате существует меньше инициализаторов в списке, чем, существуют участники, то каждый участник, не явно инициализированный, должен быть инициализирован значением по умолчанию. Пример:
struct S { int a; char* b; int c; }; S ss = { 1, "asdf" };
инициализирует
ss.a
с1
,ss.b
с"asdf"
, иss.c
со значением выражения формыint()
, то есть,0
.
можно найти полную спецификацию по этой теме здесь
Просто взглянув на исходный код (setuptools / command / tests.py), не похоже, что тест setup.py не предназначен для установки чего-либо по дизайну (это тестирование, поэтому зачем что-то класть в пакеты-сайты?). Он использует fetch_build_egg (setuptools / dist.py) для получения яиц, что фактически выполняет локальную easy_install. Я подозреваю, что вы не можете банально заставить test делать то, что вы хотите.
Примечания / идеи: Мой опыт работы с инструментами настройки показывает, что в нем есть ошибки и недокументированное поведение. (Одна особенно неприятная ошибка, которую я обнаружил, заключалась в том, что он не входил в каталоги с мягкими ссылками, в отличие от distutils).
Я бы рекомендовал либо A) не делать этого. :), Б) вручную установить файл, вызвав пакет easy_install. или C) заглянуть в систему setuptools и, возможно, добавить свою собственную команду. Это не так уж сложно понять, и знание этого очень поможет, когда вы получите будущие заминки с инструментами настройки.