Использование дженериков при типизации для описания параметров как конкретных классов и экземпляров этих классов.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование дженериков при типизации для описания параметров как конкретных классов и экземпляров этих классов.

Сообщение Anonymous »

Поскольку мне приходится постоянно проверять атрибуты класса (сравнимые объекты), кажется разумным поместить это в более или менее универсальный дескриптор, который должен проверять тип устанавливаемого аргумента и диапазон значений, если это приемлемо.< /p>

Код: Выделить всё

from typing import TypeVar

T = TypeVar("T", bound=type)
Instance = TypeVar("Instance", bound=T) # ???

class TypeAndValueValidator:
def __init__(
self,
type_: T = None,
start_value=None,
end_value=None,
include_start: bool = True,
include_end: bool = True,
):
self.type = type_
self.start_value = start_value
self.end_value = end_value
self.include_start = include_start
self.include_end = include_end

def __set_name__(self, owner, name):
# ...

def __get__(self, obj, obj_type=None):
# ...

def __set__(self, obj, value):
# ...
Как это выразить:
  • Тип _ атрибут - это класс.
  • Начальное_значение и конечное_значение являются экземплярами класса, указанного в атрибуте type_.
Соответственно - тогда я могу указать ограничения типа для параметры методов set_name, get, set и т.д.
Я пытался разобраться в этом, используя документацию по типизации, но осталось непонятным мне.

Подробнее здесь: https://stackoverflow.com/questions/792 ... s-and-as-i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»