Почему Range () в Python требует позиционных аргументов при вызове, но аргументы ключевых слов в операторе Match?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему Range () в Python требует позиционных аргументов при вызове, но аргументы ключевых слов в операторе Match?

Сообщение Anonymous »

Все примеры, протестированные с использованием Python 3.13.2 в Windows 10.
При вызове range () я должен использовать позиционные аргументы или иным образом я получаю исключение. /p>
>>> range(2, 5)
range(2, 5)
>>> range(start=2, stop=5)
Traceback (most recent call last):
File "", line 1, in
range(start=2, stop=5)
~~~~~^^^^^^^^^^^^^^^^^
TypeError: range() takes no keyword arguments
< /code>
Однако при попытке соответствовать шаблону он работает только с аргументами ключевых слов. < /p>
>>> match range(2, 5):
... case range(0, y, 1):
... print('1 argument')
... case range(x, y, 1):
... print('2 arguments')
... case range(x, y, z):
... print('3 arguments')
... case _:
... print('none of the above')
...
Traceback (most recent call last):
File "", line 2, in
case range(0, y, 1):
~~~~~^^^^^^^^^
TypeError: range() accepts 0 positional sub-patterns (3 given)
>>> match range(2, 5):
... case range(start=0, stop=y, step=1):
... print('1 argument')
... case range(start=x, stop=y, step=1):
... print('2 arguments')
... case range(start=x, stop=y, step=z):
... print('3 arguments')
... case _:
... print('none of the above')
...
2 arguments
< /code>
Интересно, что эти аргументы не могут просто использовать какие -либо произвольные имена. Использование разных приводит к сбою шаблона, не поднимая исключение. < /P>
>>> match range(2, 5):
... case range(aaa=0, bbb=y, ccc=1):
... print('1 argument')
... case range(aaa=x, bbb=y, ccc=1):
... print('2 arguments')
... case range(aaa=x, bbb=y, ccc=z):
... print('3 arguments')
... case _:
... print('none of the above')
...
none of the above


Подробнее здесь: https://stackoverflow.com/questions/794 ... ut-keyword
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»