Запитання з тегом «type-hinting»

Підказки типу прив'язують аргументи функції до певних об'єктів або сильно їх набирають.


1
Введіть підказки з визначеними користувачем класами
Не вдалося знайти остаточної відповіді. Я хочу зробити підказку типу для функції, а тип - це якийсь спеціальний клас, який я визначив, назвав його CustomClass(). І тоді, скажімо, у якійсь функції, назвіть це FuncA(arg), у мене є один аргумент arg. Чи буде правильним способом набору підказки FuncA: def FuncA(arg: CustomClass): …

2
Різниця між визначенням набору тексту.
Я практикую використання підказок типу в 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, "Tiras" …

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 …

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, натяк на повернення та самості
ОНОВЛЕННЯ : PHP 7.4 тепер підтримує коваріацію та контраваріацію, які вирішують основну проблему, порушену в цьому питанні. Я зіткнувся з якоюсь проблемою із використанням підказки типу return у PHP 7. Я розумію, що підказка : selfозначає, що ви маєте намір повернути сам клас-реалізатор. Тому я використовував : selfу своїх інтерфейсах …

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 …

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 example() as x: print(x) Я хотів би набрати підказку вище, сказати, що xце str(як приклад). Єдина робота, яку я знайшов, - це використання проміжної змінної, але це відчувається хакі. with example() as x: y: str = x print(y) Я …

2
Чому я несподівано отримую помилку "Введене властивість не має доступу до ініціалізації" під час введення підказки типу властивостей?
Я оновив свої визначення класу, щоб використати нещодавно введені підказки щодо типу властивостей, наприклад: 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.