Задать вопрос
@firstmixon

Есть ли в питоне в стандартной библиотеке под типы целочисленные(знаковый\безнаковый, byte, short)?

Как без бубна и доп.библиотек реализовать ограничение на целочисленную переменную,
данные берутся из БД и тудаже сохраняются, в БД к примеру стоит тип поля byte[0..255] or byte[-128...+128] как кроме проверок обеспечить заданные параметры для переменной в питоне, что бы она не выходила за рамки заданного типа?
  • Вопрос задан
  • 126 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Есть ли в питоне в стандартной библиотеке под типы целочисленные(знаковый\безнаковый, byte, short)?

Нет.
Вопрос как без бубна и доп.библиотек реализовать ограничение на целочисленную переменную,
данные берутся из БД и тудаже сохраняются, в БД к примеру стоит тип поля byte[0..255] or byte[-128...+128] как кроме проверок обеспечить заданные параметры для переменной в питоне, что бы она не выходила за рамки заданного типа?

- Использовать библиотеку (рекомендую), например Pydantic (используется в самом быстром (из популярных) веб-фреймворке FastAPI по дефолту).
- Класс (с инкапсуляцией такого действия).
- Простые проверки.
Ответ написан
maccree
@maccree
freelance backend developer
в питоне нет типов целых чисел с явно заданным размером, как byte или short, место этого у нас есть обычные целые числа int, которые автоматически масштабируются под нужный размер.

если НУ ОЧЕНЬ нужны фиксированные размеры, можно использовать библиотеку ctypes
что-то типо:

import ctypes

signed_byte = ctypes.c_int8  # знаковый 8битный
unsigned_byte = ctypes.c_uint8  # беззнаковый 8битный

signed_value = signed_byte(-5)
unsigned_value = unsigned_byte(255)

print(signed_value.value)   #  -5
print(unsigned_value.value) # 255
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Mi11er
@Mi11er
A human...
На то он и динамический язык ...
Хочется быстро и с типизацией, то это Go
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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