Почему делает Python-V, пишут в поток сообщений об ошибках?

Единственный способ, которым я смог обойти это, это установить андроид моей активности: windowSoftInputMode = "AdjustResize", а затем внедрить пользовательский «вид детектора» в макет для обработки изменения размера контейнера и распространить его как пользовательское событие. (через прослушиватель) для включения / выключения программной клавиатуры.

В следующем посте описан подход к его реализации: EditText не вызывает изменения при нажатии кнопки назад

6
задан Daniel A. White 6 March 2017 в 03:12
поделиться

4 ответа

Параметр -h также используется для печати в stderr, потому что он не является частью вывода вашей программы, т.е. вывод не создается с помощью ваш скрипт Python, но сам интерпретатор Python.

Что касается того, почему они изменили -h на использование stdout? Попробуйте ввести python -h , установив в окне терминала стандартные 24 строки. Прокручивается за пределы экрана.

Сейчас большинство людей отреагируют, попробовав python -h | less , но это работает только в том случае, если вы отправите вывод -h в stdout вместо stderr. Таким образом, была веская причина для перехода -h к stdout, но нет веской причины для изменения -V.

3
ответ дан 16 December 2019 в 21:41
поделиться

-h также используется для печати в stderr, как вы видите здесь из main.c

usage(int exitcode, char* program)
{
fprintf(stderr, usage_line, program);
fprintf(stderr, usage_top);
fprintf(stderr, usage_mid);
fprintf(stderr, usage_bot, DELIM, DELIM, PYTHONHOMEHELP);
exit(exitcode);
/*NOTREACHED*/
}

...

if (help)
    usage(0, argv[0]);

if (version) {
    fprintf(stderr, "Python %s\n", PY_VERSION);
    exit(0);

Текущий main.c изменил способ определения использования

usage(int exitcode, char* program)
{
FILE *f = exitcode ? stderr : stdout;

fprintf(f, usage_line, program);
if (exitcode)
    fprintf(f, "Try `python -h' for more information.\n");
else {
    fputs(usage_1, f);
    fputs(usage_2, f);
    fputs(usage_3, f);
    fprintf(f, usage_4, DELIM);
    fprintf(f, usage_5, DELIM, PYTHONHOMEHELP);
}

Таким образом, используется стандартный вывод для -h и stderr для -Q.

Я не вижу никаких доказательств того, что хорошая причина одна из других. Возможно, сейчас его нельзя изменить без нарушения обратной совместимости

2
ответ дан 16 December 2019 в 21:41
поделиться

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

Например:

FLAT_HIER_ID  NODE_ID   PARENT_NODE_ID
~N1           N1
~N1~N2        N2        N1
~N1~N2~N3     N3        N2
~N1~N2~N4     N4        N2

Не очень элегантно, но дает вам маршрут для запроса.

Другой (возможно, лучше) вариант - использовать метод « Модель вложенного набора ». Это метод, используемый в Fogbugz для обработки запросов в подкадрах в MSSQL, MySQL и MS Access.

Модель объяснена по адресу:

http://www.developersdex.com/gurus/articles/112.asp

Использование метода в Fogbugz описано по адресу:

http: //www.fogcreek.

2
ответ дан 16 December 2019 в 21:41
поделиться

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

1
ответ дан 16 December 2019 в 21:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: