@Guerro69

Как передавать аргументу функции класс через двоеточие?

Смотрев исходники одного модуля, я заметил, что в функциях этого модуля аргументам был присвоен класс:
def example(text: str, count: int):
До этого я такую картину наблюдал, когда писал бота для дискорда с помощью discord.py
async def first_command(ctx, member: discord.Member, *, arg):

я сразу же понял, что таким способом аргументам присваивают классы, не замедлительно я пошёл это тестировать сам и написал простой код:
def arithmetic_mean(c1:int,c2:int,c3:int):
	a = sum([c1,c2,c3]) / 3
	return a

a = arithmetic_mean('1',2,5)
print(a)

но почему-то Python серовно выдал ошибку, тогда я пошёл искать информацию в интернете насчёт этого, сколько я не искал, максимум, что я находил, это про двоеточия с индексами для среза и про дефолтные значения, можно кратко объяснить, что это и как этим пользоваться.
  • Вопрос задан
  • 1388 просмотров
Решения вопроса 2
@twistfire92
Python backend developer
Это не присваивание типов. Это аннотации. И на работу они не влияют.
Вы сами передали строку вместо числа. Запись c1:int в параметрах функции не преобразовывает строку в число, она лишь говорит о том, что тут функция ожидает видеть число, с числом тут все будет ок.

Короче. Гуглите аннотации.
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
можно забить
https://docs.python.org/3/library/typing.html

с классами в IRL тебе в Go
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы