Вопросы с тегом «type-hinting»

Подсказка типа связывает аргументы функции с конкретными объектами или строго их типизирует.


2
Разница между определением typing.Dict и dict?
Я практикуюсь в использовании подсказок типов в Python 3.5. Один из моих коллег использует typing.Dict: import typing def change_bandwidths(new_bandwidths: typing.Dict, user_id: int, user_name: str) -> bool: print(new_bandwidths, user_id, user_name) return False def my_change_bandwidths(new_bandwidths: dict, user_id: int, user_name: str) ->bool: print(new_bandwidths, user_id, user_name) return True def main(): my_id, my_name = 23, …

1
Как я могу отловить «обнаруживаемую фатальную ошибку» при хинтинге типа PHP?
Я пытаюсь реализовать подсказку типа PHP5 в одном из моих классов, class ClassA { public function method_a (ClassB $b) {} } class ClassB {} class ClassWrong{} Правильное использование: $a = new ClassA; $a->method_a(new ClassB); производит ошибку: $a = new ClassA; $a->method_a(new ClassWrong); Уловимая фатальная ошибка: аргумент 1, переданный в ClassA …

2
Как мне использовать подсказку необязательного типа?
Я пытаюсь понять, как использовать Optionalподсказку типа. Из PEP-484 , я знаю , что я могу использовать Optionalдля def test(a: int = None)либо def test(a: Union[int, None])или def test(a: Optional[int]). Но как насчет следующих примеров? def test(a : dict = None): #print(a) ==> {'a': 1234} #or #print(a) ==> None def …

4
Как аннотировать типы в цикле for
Я хочу аннотировать тип переменной в forцикле. Я пробовал это: for i: int in range(5): pass Но это явно не сработало. Я ожидаю, что в PyCharm 2016.3.2 работает автозаполнение. Предварительная аннотация вроде этого: i: int for i in range(5): pass не помогает. PS Предварительная аннотация работает для PyCharm> = 2017.1

5
Интерфейсы PHP 7, хинтинг типа возвращаемого значения и self
ОБНОВЛЕНИЕ : PHP 7.4 теперь поддерживает ковариацию и контравариантность, что решает основную проблему, поднятую в этом вопросе. У меня возникла проблема с использованием подсказки типа возвращаемого значения в PHP 7. Насколько я понимаю, подсказка : selfозначает, что вы намереваетесь, чтобы реализующий класс возвращал себя. Поэтому я использовал : selfв своих …

2
Что такое аннотации переменных?
Готовится к выпуску Python 3.6. PEP 494 - В расписании выпуска Python 3.6 упоминается конец декабря, поэтому я просмотрел Что нового в Python 3.6, чтобы увидеть, что они упоминают аннотации переменных : PEP 484 представил стандарт для аннотаций типов параметров функций, также известных как подсказки типов. Этот PEP добавляет в …

2
JetBrains WebIDE: подсказка типа переменной PHP?
Есть ли способ намекнуть WebIDE, что переменная имеет какой-то тип? Мне нужно перебрать массив объектов, а автозаполнение недоступно. В ZendStudio это помогает: /* @var ClassName $object */ Я знаю, что в JetBrains есть функция для объявления массива объектов: /** * @return ClassName[] */ Но это работает только с типом возвращаемого …

4
Подсказка типа для свойств в PHP 7?
Поддерживает ли php 7 указание типов для свойств класса? Я имею в виду, не только для сеттеров / получателей, но и для самого свойства. Что-то вроде: class Foo { /** * * @var Bar */ public $bar : Bar; } $fooInstance = new Foo(); $fooInstance->bar = new NotBar(); //Error

2
Поддерживает ли оператор with подсказку типа?
Можете ли вы определить подсказку типа для переменной, определенной с помощью withсинтаксиса? with example() as x: print(x) Я хотел бы напечатать подсказку выше, чтобы сказать, что xэто str(в качестве примера). Единственный обходной путь, который я нашел, - это использование промежуточной переменной, но это кажется хакерским. with example() as x: y: …

2
Почему я внезапно получаю сообщение об ошибке «Свойство Typed не должно быть доступно до инициализации» при введении подсказок типа свойств?
Я обновил определения моего класса, чтобы использовать недавно введенные подсказки типа свойств, например: class Foo { private int $id; private ?string $val; private DateTimeInterface $createdAt; private ?DateTimeInterface $updatedAt; public function __construct(int $id) { $this->id = $id; } public function getId(): int { return $this->id; } public function getVal(): ?string { …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.