Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323

При передаче в функцию указать тип данных

14.02.2021, 11:41. Показов 1987. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте, видел на Хабре объявления функций, например:
Python
1
2
3
def bubble_sort(data: List[int]):
def sum(a: int, b: int):
def sum(a: str, b: str):
и в этом же топике без указания типов:
Python
1
def sum(a, b):
так как всё же лучше? и что будет если укажу один тип, а он не совпадёт?, если ошибка - то для меня гут, спс
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2021, 11:41
Ответы с готовыми решениями:

Одинаково ли быстродействие: 1. при передаче параметров в функцию или 2. создание кортежа и передаче его в функцию?
Одинаково ли быстродействие: 1. при передаче параметров в функцию или 2. создание кортежа и передаче его в функцию? Зависит ли это от...

Тип данных при передаче массива контролов как параметра
Добрый день. Такой вопрос меня мучит. Передаю в процедуру как параметр один стандартный контрол (например PictureBox). Никаких проблем:...

Несовместимый тип при передаче callback-функции
уважаемые форумчане, помогите ответом-советом: подскажите,пожалуйста, даю скрин. Спасибо Нарушен п. 5.18 Правил Запрещено размещать...

22
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
14.02.2021, 12:24
Лучший ответ Сообщение было отмечено iSmokeJC как решение

Решение

лучше указывать тип, ошибки не будет, это просто рекомендация. Правда есть либа которая проверит и все же уронит программу если передается что-то нето, но это не твой случай, потому что у тебя все не то, в силу неприязни к чтению.
3
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
14.02.2021, 14:13  [ТС]
что-то пока проблемы, строка:
Python
1
    def df_get_date(dt: date):
и ошибка на неё: NameError: name 'date' is not defined
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
14.02.2021, 14:15
Ципихович Эндрю, потому что надо читать, что такое аннотации типов и как их использовать, методом тыка не получится.
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
14.02.2021, 14:28  [ТС]
многие скрывают, так что-ли
Python
1
def df_get_date(dt: Union[datetime.date, str]):
??
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
14.02.2021, 14:37
Цитата Сообщение от Welemir1 Посмотреть сообщение
потому что надо читать, что такое аннотации типов и как их использовать, методом тыка не получится.
Либо попробовать ЯП со статической типизацией.

Не по теме:

P. S. Аннотации в Python'е выглядят очень инородно. Да и forward declaration до сих пор не пофиксили...

1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
14.02.2021, 14:50  [ТС]
да и веры никому нет
пример https://habr.com/ru/company/exness/blog/542106/ с хабра
def bubble_sort(data: List[int]):=def bubble_sort(data: list[int]):
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
14.02.2021, 14:57
Arsegg, анноташки это очень крутая вещь, первый плюс как раз в том что они не обязательны. Мы на проекте используем например чтобы в доке функции не писать типы -и так видно. Ну и при работе очень удобно, сразу видно что в функции ждут, чего она вернет, пичарм всегда подскажет. Да, это не статическая типизация, это просто для удобства, а мне после джавы так вообще понятно. Понятно, что надо знать меру и не писать в стиле :List[Tuple[Point[Union[int, float]]]
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
14.02.2021, 14:57  [ТС]
Цитата Сообщение от Arsegg Посмотреть сообщение
Либо попробовать ЯП со статической типизацией
у всех, всего - ЯП, статической типизации есть свои плюсы и минусы
0
14.02.2021, 15:25

Не по теме:

Цитата Сообщение от Welemir1 Посмотреть сообщение
а мне после джавы так вообще понятно.
А я вот, например, завис: Iterator и Iterable - для типизированного Python'а вещь идентичная...
Цитата Сообщение от Welemir1 Посмотреть сообщение
анноташки это очень крутая вещь
Бесспорно.

0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
14.02.2021, 15:49
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
да и веры никому нет
Это просто разные варианты одного и того же. Раньше нельзя было использовать имя list[тип списка] как аннотацию - можно было только List из модуля typing. Теперь (3.8 -3.9 - точно не помню с какой версии) можно и без импорта имен из typing.

P.S. Нужно доку еще читать, а не только устаревшие статьи.
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
14.02.2021, 15:55  [ТС]
ясно
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
что-то пока проблемы, строка:
PythonВыделить код
1
    def df_get_date(dt: date):
и ошибка на неё: NameError: name 'date' is not defined
подскажите?

Добавлено через 2 минуты
ещё и так бывает, на выбор x: Union[int, float], но ругается на Union
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
14.02.2021, 15:56
https://docs.python.org/3.9/library/typing.html
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
14.02.2021, 15:59  [ТС]
я то всё не читаю, тем более на английском, пользуюсь поиском:
Python
1
def validate_simple(data: Any)
чего-то не то..........
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
14.02.2021, 16:19
Python
1
2
3
4
5
6
>>> from datetime import date
>>> def test(d:date):print(d)
 
>>> test(date.today())
2021-02-14
>>>
Добавлено через 1 минуту
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
но ругается на Union
Потому что его нужно импортировать из typing.
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
14.02.2021, 16:28  [ТС]
так у меня так было
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
def df_get_date(dt: date):
и
Цитата Сообщение от Garry Galler Посмотреть сообщение
def test(d:date):
что-то разница не большая, и что взлетит? вряд-ли
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
14.02.2021, 16:48
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
def df_get_date(dt: date):
и ошибка на неё: NameError: name 'date' is not defined
Так питон Вам уже подсказал. Не определена такая переменная.
Вот пример из стандартной документации, почитайте ее, используя поиск date :
Python
1
2
3
>>> from datetime import date
>>> date.fromisoformat('2019-12-04')
datetime.date(2019, 12, 4)
Как мы отсюда видим, date нужно импортировать из модуля datetime , тогда питон не будет ругаться.

Добавлено через 3 минуты
Пример не только на date , но и на метод fromisoformat . Но не суть важно, важно что date нужно импортировать. Читайте документацию.
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
14.02.2021, 16:52  [ТС]
окей, по теме времени, даты у меня было две строки, бог любит троицу

Python
1
2
3
from datetime import date
from datetime import datetime
from datetime import timedelta
добавил, спс
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
14.02.2021, 16:54
Извиняюсь, не видел, что Garry Galler, Вам уже все объяснил.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
14.02.2021, 16:56  [ТС]
Цитата Сообщение от Viktorrus Посмотреть сообщение
Извиняюсь, не видел, что Garry Galler, Вам уже все объяснил
всё равно спасибо за потраченное время всем
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.02.2021, 16:56
Помогаю со студенческими работами здесь

Как правильно указать в Sql запросе логический тип данных и тип "Дата время"?
Как правильно указывать в sql запросе логический тип и тип "дата время"? К примеру, запрос следующего вида: INSERT INTO График VALUES...

задержкав передаче данных в функцию
Добрый день .Суть проблемы такова.Создаю корзину на куках. Алгоритм следующий 1.Клиент заходит и корзина(массив) уже ждёт его. 2....

Указать тип данных
type TStud = record name:string; srball:real; year: integer; ...

какой тип данных указать
какой тип данных указать для колонки которая отображает числа 3.4545 сейчас стоит FLOAT ,мне нужно чтоб сохранялось только два...

Как правильно указать тип данных
Вводится массив, нужно удалить все целочисленные элементы и вывести новый массив, не могу разобраться с типами данных. Ошибка нельзя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru