Найти - Пользователи
Полная версия: Что означает слэш в аргументах функции?
Начало » Python для новичков » Что означает слэш в аргументах функции?
1
vladimir_vl_vlad
Что означает такая запись? Нигде не смог найти пояснений. Код из библиотеки unittest.mock
 def assert_any_call(self, /, *args, **kwargs):
    pass
xam1816
vladimir_vl_vlad
Нигде не смог найти пояснений
10 секунд мне понадобилось чтобы найти в интернете ответ

Косая черта в списке аргументов функции означает, что параметры, предшествующие ей, являются только позиционными.

Позиционные параметры - это параметры, не имеющие имени, используемого извне.

При вызове функции, которая принимает только позиционные параметры, аргументы сопоставляются с параметрами, основанными исключительно на их положении.

 def func(a, b, /):
    print('ok')
try:
 func(1, 2)
except:
    print('error')
try:
 func(a=1, b=2)
except:
    print('error')
ZerG
https://metanit.com/python/tutorial/2.15.php
vladimir_vl_vlad
xam1816
Спасибо за объяснение, но я так и не понял для чего нужен слэш в коде, который я привел: там же ему ничего не предшествует, а *args и означает позиционные параметры
xam1816
vladimir_vl_vlad
там же ему ничего не предшествует
a self вы почему за аргумент не считаете?
ZerG
vladimir_vl_vlad
Ну не понял значит не твое ето
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB