Описание тега python-typing

По вопросам, связанным с PEP 484 (подсказки типов), PEP 526 (синтаксис для аннотаций переменных) и модулем `typing`.
0 ответов

Подсказки типа членов класса Python

Я использую PyCharm разработать приложение на Python. Я пытаюсь использовать как можно более современный Python, поэтому я использую новые возможности Python. У меня проблема с type hinting, Давайте все посмотрим на мой DataAnalyzer учебный класс: c…
22 дек '18 в 15:42
2 ответа

Python-тип-дружественный тип, который ограничивает возможные значения

Я хочу, чтобы Python-дружественный способ создания подсказок для типов создавал ограниченный диапазон значений. Например, тип URL на основе типа str это будет принимать только строки, которые выглядят как URL "http". # this code is made up and will …
09 фев '19 в 23:46
0 ответов

Какой тип (из модуля ввода) подходит для списка, кортежа или набора в Python?

Некоторые, с которыми я столкнулся: typing.ItemsView typing.AbstractSet typing.Collection typing.Container Какой из них вы считаете наиболее подходящим?
28 фев '19 в 03:50
2 ответа

Typing - тип возвращаемого значения функции совпадает с типом выражения

Рассмотрим код: def foo() -> ??: return bar() Как я могу сказать, что я хочу вернуть тип foo быть таким же, как тип возврата bar()? В C++ я мог бы использовать decltypeчто-то вроде: auto foo() -> decltype(bar()) { return bar(); } Я не мог найт…
22 янв '19 в 22:40
1 ответ

Python 3 печатает varadic определения "применять" стиля

Я изо всех сил пытался написать "varadic" определения типов списков аргументов. например, давая типы: def foo(fn, *args): return fn(*args) лучшее, что я смог сделать, это использовать предложение отсюда: from typing import overload, Callable, TypeVa…
27 дек '18 в 15:05
1 ответ

Как мне указать этот тип кортежа аргумента переменной с типизацией Python?

Я пытаюсь сделать это, но я не уверен, как указать тип подписи: def initialize_signals( self, command: InitializeCommand, initializers: Iterable[Union[ Tuple[SignalNode], Tuple[SignalNode, Any, ...] ]]): for x, *args in initializers: potential_updat…
24 фев '19 в 20:34
0 ответов

Python typing - унаследованный класс

У меня есть класс ABC с именем Hub и класс, который наследуется от него, под названием HistoricalHub. # engine/hub.py from abc import ABC, abstractmethod class Hub(ABC): @abstractmethod def method1(self): """""" class HistoricalHub(Hub): @abstractme…
09 сен '18 в 12:21
1 ответ

Тип Python для параметра может быть None

Я пытаюсь создать древовидную структуру с аннотацией ввода Python. Код выглядит так: from typing import List class TNode: def __init__(self, parent: 'TNode', data: str, children: List['TNode'] = []): self.parent = parent self.data = data self.childr…
09 авг '18 в 09:43
1 ответ

Введите подсказку из родительского класса

Как вы можете намекнуть класс из родительского класса, как это? class Cls1: class Cls2: p2: int class Cls3: p3: Cls2 # undefined name 'Cls2' class Cls4: p4: Cls2 # undefined name 'Cls2'
26 окт '18 в 12:37
1 ответ

Как использовать переменные типа Generic (с более высоким родом) в системе хинтинга типов Python?

Предположим, я хочу написать универсальный класс, используя mypy, но аргумент типа для класса сам по себе является универсальным типом. Например: from typing import TypeVar, Generic, Callable A = TypeVar("A") B = TypeVar("B") T = TypeVar("T") class …
1 ответ

Mypy, похоже, игнорирует границы типа TypeVar

Например, у меня есть кусок кода, подобный следующему: from typing import Type, TypeVar, cast class SuperClass: pass T = TypeVar('T', bound=SuperClass) def cast_to(obj: SuperClass, cast_to: Type[T] = SuperClass) -> T: return cast(cast_to, obj) И …
29 янв '19 в 03:47
1 ответ

Подсказка типа для переменной, имеющей тот же тип, что и другая переменная в Python

Пример: def f(...): ... v: type(f) = decorate(f) Но VSCode Python Language Server, похоже, не распознает его (и MyPy дает это object тип?). Часть проблемы здесь в том, что decorate не набирается вручную и неправильно выводится.
10 фев '19 в 09:39
2 ответа

Типизация Python для подкласса списка

Я хочу иметь возможность определить, каким должно быть содержимое подкласса списка. Класс будет выглядеть следующим образом. class A(list): def __init__(self): list.__init__(self) Я хочу включить печатание так, чтобы произошло следующее. import typi…
27 фев '19 в 20:30
1 ответ

Как выразить множественное наследование в подсказке типа Python?

В Java C# универсальный метод может иметь параметр типа с ограничением для определения интерфейсов, которые должны быть реализованы. static <T extends Iterable<Integer> & Comparable<Integer>> void test(T p) { } В Python, если я…
11 окт '18 в 07:14
0 ответов

Как я могу аннотировать функции с типом класса, который еще не объявлен?

В следующем коде у меня есть два класса, которые содержат методы, которые должны возвращать экземпляры другого, и без аннотаций работают должным образом: class Foo: def __init__(self, bar = None): self.bar = bar or Bar(self) def foo(self): return se…
1 ответ

Тип Python 3 подсказки в Python 2

У меня есть питон def определение, которое кажется работающим для python3: def get_default_device(use_gpu: bool = True) -> cl.Device: Под python2 я получаю следующую синтаксическую ошибку: root:~/pyopencla/ch3# python map_copy.py Traceback (most …
14 ноя '18 в 18:15
0 ответов

Как объявить подсказку типа возврата декоратора?

Просто любопытно, что печатание еще не обязательно в Python. У меня есть декоратор метода класса, в котором я хочу объявить типы, но возвращаемый тип декоратора - это функция, как мне объявить это? Декоратор: def requires_permissions(permission_list…
0 ответов

Тип [T] из PEP 484 для модуля ввода Python 3.5 не реализован. Как мне проверить тип класса?

Итак, в PEP 484 есть раздел "Тип объектов класса". В этом разделе говорится, что должно быть возможно следующее: U = TypeVar('U', bound=User) def new_user(user_class: Type[U]) -> U: user = user_class() # (Here we could write the user object to a …
1 ответ

Укажите ключи для mypy в словаре Python

Предположим, у меня есть такой код def get_x(d: dict) -> int: d["x"] Тем не менее, я хочу сказать, что Mypy d должен содержать только определенные ключи (например, только ключ "x"). Таким образом, если я сделаю ошибку ниже в коде, пытаясь сослать…
02 фев '19 в 03:43
1 ответ

Как передать аргументы пользовательским подсказкам статического типа в Python 3?

Я большой поклонник и сторонник статических подсказок типов в Python 3. Я использую их некоторое время без проблем. Я только что натолкнулся на новый крайний случай, который я не могу скомпилировать. Что если я хочу определить пользовательский тип, …