Это полностью зависит от того, насколько большой проект, какой длины классы, если они будут использоваться из других файлов и так далее.
, Например, я довольно часто использую серию классов для абстракции данных - таким образом, у меня может быть 4 или 5 классов, которые могут только быть 1 строкой долго (class SomeData: pass
).
было бы глупо разделить каждый из них в отдельные файлы - но так как они могут использоваться из различных файлов, помещая все они в отдельном data_model.py
, файл имел бы смысл, таким образом, я могу сделать from mypackage.data_model import SomeData, SomeSubData
, Если у Вас есть класс с большим количеством кода в нем, возможно, с некоторыми функциями только это использует, это была бы хорошая идея разделить этот класс и функции помощника в отдельный файл.
необходимо структурировать их так, Вы делаете from mypackage.database.schema import MyModel
, не from mypackage.email.errors import MyDatabaseModel
- если, куда Вы импортируете вещи из, имеют смысл, и файлы не являются десятками тысяч строк долго, Вы организовали его правильно.
документация Модулей Python имеет немного полезной информации об организации пакетов.
^-?(0\.\d*[1-9]|[1-9]\d*(\.\d+)?)$
РЕДАКТИРОВАТЬ Обновлено для отражения новых требований (последние десятичные дроби могут быть нулевыми)
^-?(0\.\d*[1-9]\d*|[1-9]\d*(\.\d+)?)$
(Короче, чем использование опережающего просмотра: ^ -? (0 \. (? = [1-9]) \ d * | [1-9] \ d * (\. \ D +)?) $
.)
EDIT2 Если, например, 001.000
может пройти
^-?(?=.*[1-9])\d+(\.\d+)?$
Это тот, который я всегда использую:
(\ + | -)? ([0-9] + \.? [0-9] * | \. [0- 9] +) ([eE] (\ + | -)? [0-9] +)?
Используется в примере PHP:
<?php
$s= '1.234e4';
preg_match('~(\+|-)?([0-9]+\.?[0-9]*|\.[0-9]+)([eE](\+|-)?[0-9]+)?~', $s, $m);
print_r($m);
?>
Вывод:
Array
(
[0] => 1.234e4
[1] =>
[2] => 1.234
[3] => e4
)
-?(?!0)\d+(\.\d+)?
Примечание: не забудьте поставить ^ $, если это не выполняется вашим сопоставителем регулярных выражений.
Могу я спросить, почему "самый короткий"? Прекомпилятор RegExp или то же самое с несовпадающими группами может быть быстрее. Также тест на ноль тоже может быть быстрее.