Предположим, я определяю класс с переменными уровня класса с подсказками типов (например, что-то вроде новых классов данных Python 3.7)
class Person:
name: str
age: int
В системе подсказок типов необязательный считается эквивалентным Union
Работает ли это для нескольких типов аргументы? т. е.
Необязательный разбивается на Union , или мне нужно записать его как Необязательный[ Союз ]
Я написал код, но в pycharm(2019.1) получаю следующее сообщение:
Параметризованные дженерики нельзя использовать с проверками классов или экземпляров
def data_is_valid(data):
keys_and_types = {
'comment': (str, type(None)),
'from_budget': (bool,...
Как написать объявление функции, используя подсказки типов Python для функции, возвращающей несколько возвращаемых значений?
Разрешен ли приведенный ниже синтаксис?
def greeting(name: str) -> str, List , int :
Я хотел бы найти все вхождения подстроки, игнорируя некоторые символы. Как это сделать на Python?
Пример:
long_string = 'this is a t`es t. Does the test work?'
small_string = test
chars_to_ignore =
print(find_occurrences(long_string,...
Резюме
Мы можем успешно создать медиаконтейнер, но не можем проверить его статус или опубликовать. Обе операции завершаются с ошибкой, указывающей, что наше приложение не имеет возможности выполнить вызов API.
Шаги по воспроизведению
Вы можете смешивать типы внутри кортежей или списков. Почему нельзя указать это при наборе подсказок?
>>> from typing import Tuple, List
>>> t = ('a', 1)
>>> l =
Иногда аргумент функции, которую я пишу, может быть любого типа, если он является хешируемым, например, потому что моя функция добавляет его в набор или использует в качестве ключа словаря.
Есть ли способ указать этот факт, используя подсказки типов...
Я модифицирую старый код Python, чтобы добавить аннотации PyType. Я делаю это механически, добавляя операторы печати вверху каждой функции
def f(a, b):
print( type a: , type(a))
print( type b: , type(b))
Как правильно аннотировать эту простую служебную функцию в Python3, которая читает из файла?
Она должна принимать объекты pathlib.Path, а также любой другой распространенный способ передачи пути.
def read_json(path: ):
with open(path, 'rb') as f:...
Я работаю над освоением Matplotlib, и во второй главе они представляют следующий фрагмент кода:
#! /usr/bin/env python3.4
import matplotlib.pyplot as plt
def main () -> None:
plt.plot( )
plt.ylabel('some numbers')
plt.savefig('simple-line.png')...
Я пытаюсь убедиться, что параметр функции является асинхронной функцией.
Поэтому я экспериментирую со следующим кодом:
async def test(*args, **kwargs):
pass
Я использую Python 3.5 вместе с Mypy, чтобы выполнить базовую статическую проверку моего скрипта. Недавно я реорганизовал некоторые методы для возврата OrderedDict, но столкнулся с ошибкой «Объект типа не подлежит индексированию», когда пытался...
Я попробовал визуализировать JavaScript с помощью HTMLSession, но при попытке это выдало ошибку.
>>> r.html.render()
Future exception was never retrieved
future:
pyppeteer.errors.NetworkError: Protocol error Target.detachFromTarget: Target...
Почему я получаю эту ошибку при запуске этого кода?
Traceback (most recent call last):
File main.py , line 13, in
def twoSum(self, nums: list , target: int) -> list :
TypeError: 'type' object is not subscriptable
Я хотел бы использовать автодополнение для предварительно скомпилированного и сохраненного списка регулярных выражений, но не получается импортировать класс _sre.SRE_Pattern, и я не могу программно передать полученный тип из type( ) к комментарию...
Предположим, у меня есть функция со строковым аргументом, соответствующим имени метода:
def func(method: str):
if method not in ('simple_method', 'some_other_method'):
raise ValueError('Unknown method')
У меня есть функция, которая может принимать на вход любую индексируемую переменную, например список или кортеж. Как указать это в подсказке типа функции?
Простите, если этот вопрос задавался раньше, но я не смог найти соответствующего ответа.
Рассмотрим функцию, которая принимает числовой тип в качестве входного параметра:
def foo(a):
return ((a+1)*2)**4;
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения