Во-первых, когда я спрашиваю об элементах, я имею в виду единицы измерения, такие как дюймы, футы, пиксели, ячейки. Я не имею в виду типы данных, такие как int и float.Соглашение Python для обозначения переменных для обозначения единиц
Wikipedia относится к этому как логического типа данных, а нетипа физические данные.
Я хотел бы знать, как лучше всего использовать переменные.
Вот код, чтобы пройти через то, что я спрашиваю:
board_length=8 #in inches
board_length=8*12 #Convert from feet to inches
Обратите внимание, что эти оба целые числа (или поплавки, я не забочусь), но я изменил единицы. Я также сохранил имя переменной одинаково. Я мог бы создать конвенцию, и это цель этого вопроса. Без руководства я мог бы сделать что-то вроде этого:
board_length=8
board_length_inches=8*12
Я бы счел это случайным способом делать вещи. Или, я мог бы установить соглашение:
Fboard_length=8
Iboard_length=8*12
Или другие варианты, которые мне в равной степени не нравятся. Как я могу назвать переменные описательным образом, но остаюсь как можно ближе к PEP-08?
Просто чтобы быть ясно, как я могу, переменные могут иметь различные типы данных, но эти подразделения будут одни и те же (в дюймах будет иметь тот же именование, независимо от того, если он был сохранен, как и целое число или число с плавающей точкой)
В зависимости от того, сколько единиц относится к вашему сценарию, вы можете рассмотреть возможность создания подклассов типов на основе каждого устройства. Каждая «единица измерения» (длина, вес и т. Д.) Имела бы свой класс, который наследует встроенные типы и имеет свои собственные подклассы для отдельных единиц. Тогда эти единицы будут иметь методы для преобразования ко всем другим единицам того же типа.Это была бы большая работа, поэтому вам нужно спросить, действительно ли это стоит – wnnmaw
Или вы можете украсить встроенные функции, чтобы иметь атрибут или метод, который отслеживает единицы – wnnmaw
. Я бы не стал слишком беспокоиться об этом. Я не могу думать о каких-либо случаях, когда вам нужно будет хранить одно и то же значение в разных единицах в течение продолжительных периодов времени. Я бы просто сделал это: 'board_length = 24 # в дюймах' (несколько строк позже)' print (to_feet (board_length)) 'или' FEET = 12; печать (board_length * Лапа) '. – rlms