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

#python-3.x #function #spyder #function-declaration

Вопрос:

def StrongestNeighbour(neighbours: list[int])-> list[int]:

такого рода объявление функций работает только в моем коде vs, но не в spyder, в чем проблема.

Ответ №1:

Вероятно, с Spyder вы используете версию Python <3.9 , а с VSCode-Python >=3.9

Дело в том, что до Python 3.9 для подсказок типа, подобных той, которую вы показываете, синтаксис немного отличается:

 from typing import List

def strongestNeighbour(neighbours: List[int]) -> List[int]:
    return neighbours

strongestNeighbour([1,2,3,4])
 

Обратите внимание на импорт из typing модуля и верхний регистр L .

Вы можете проверить документы по набору текста Python 3.8 для получения дополнительной информации об импорте и общем синтаксисе: https://docs.python.org/3.8/library/typing.html

Однако, если вы используете Python 3.9, вы можете использовать list[int] синтаксис так, как он у вас есть. Вы можете проверить документы по набору текста Python 3.9 для получения дополнительной информации: https://docs.python.org/3.9/library/typing.html