Допустимое использование определения типа?

Вы должны быть уверены в пути питона. Так что используйте это

import sys

print(sys.path)

Для Python36 путь следующий:

C:\Users\user\AppData\Local\Programs\Python\Python36

В Python 3

В разделе «Команды Python» найдите строку «Компиляция». Введите следующее в поле «Команда». Убедитесь, что вы правильно сделали пробелы. У вас должно быть 'C: \ Python34 \ python', затем пробел и остальная часть команды. Если у вас есть «Python 34» с пробелом между Python и 34, Geany не сможет запустить ваш код. Также убедитесь, что ваша заглавная буква соответствует тому, что вы видите здесь.

C:\Python34\python -m py_compile "%f"

или используйте следующий путь

C:\Users\user\AppData\Local\Programs\Python\Python36 -m py_compile "%f"

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

C:\Python34\python "%f" или C:\Users\user\AppData\Local\Programs\Python\Python36 "%f"

Проверьте свои настройки, снова запустив hello.py.

Python 2

Если вы установили Python 2.7 вместо Python 3, вам, вероятно, понадобятся следующие команды:

C:\Python27\python -m py_compile "%f" или path of your python -m py_compile "%f" и

[ 1111] или path of your python "%f"

См. Эту ссылку для получения дополнительной информации: http://introtopython.org/programming_environment_windows.html

5
задан Community 23 May 2017 в 11:55
поделиться

3 ответа

Это - великое (и нормальный) использование. Необходимо быть осторожными, тем не менее, что, например, тип, который Вы выбираете, соответствует тем же критериям со знаком/неподписанным, или что они так же отвечают на операторы. Затем было бы легче изменить тип впоследствии.

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

template <typename CharType>
class Whatever
{
   CharType aChar;
   ...
};

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

11
ответ дан 18 December 2019 в 13:19
поделиться

Другое преимущество определений типов состоит в том, что, если используется мудро, они могут увеличить удобочитаемость. Как действительно немой пример, Метр и Градус могут оба быть, удваивается, но требуется дифференцироваться между ними. Используя определение типа onc быстрое и легкое решение совершить более видимые ошибки.

Примечание: больше надежного решения вышеупомянутого примера состояло бы в том, чтобы создать различные типы для метра и градуса. Таким образом компилятор может осуществить вещи сам. Это требует небольшого количества работы, которая не всегда окупается, как бы то ни было. Используя определения типов быстрый и простой способ совершить видимые ошибки, как описано в статье, связанной выше.

2
ответ дан 18 December 2019 в 13:19
поделиться

Да, это - идеальное использование для определения типа, по крайней мере, в C.

Для C++ можно утверждать, что шаблоны являются лучшей идеей (как Diego Sevilla предположил), но у них есть свои недостатки. (Дополнительная работа, если все с помощью типа данных уже не перенесено в несколько классов, более медленное время компиляции и более сложная структура исходного файла, и т.д.),

Также имеет смысл комбинировать два подхода, то есть, давать имя определения типа к шаблонному параметру.

Обратите внимание, что, поскольку Вы отправляете данные по сети, символ и другие целые типы не могут быть взаимозаменяемыми (например, из-за порядка байтов). В этом случае использование шаблонного класса со специализированными функциями могло бы иметь больше смысла. (отправьте <символ> отправляет байт, отправьте <короткие> преобразования он в сетевой порядок байтов сначала),

Еще одно решение состояло бы в том, чтобы создать класс "BufferElementType" со вспомогательными методами (convertToNetworkOrderBytes ()), но я буду держать пари, что это было бы излишеством для Вас.

1
ответ дан 18 December 2019 в 13:19
поделиться
Другие вопросы по тегам:

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