170 похожих чатов

Во, @backinblacknext, тебе не попадалось, почему *args в сигнатуре обрабатывается

так, будто у него есть значение по-умолчанию?

18 ответов

32 просмотра

For example?

У него есть значение по умолчанию - пустой тупл

evle- Автор вопроса

def func(x = None, *args): не считается ошибкой. Понятно, что там технически пустой тупл, но зачем это вообще поддерживать?

А почему он должен считаться ошибкой?

evle- Автор вопроса
Pavel Павлик
А почему он должен считаться ошибкой?

А как этим осмысленно пользоваться? def func(x = None, arg): Ожидаемо не работает, а тут получается какой-то вырожденный случай.

evle
А как этим осмысленно пользоваться? def func(x = N...

В смысле? *Аргс буквально нужен для произвольного числа аргмуметов. Почему бы не разрешить перед ними тоже иметь переменное число?

evle- Автор вопроса
Tishka17
В смысле? *Аргс буквально нужен для произвольного ...

Ну а как этим значением по-умолчанию пользоваться можно, если только вообще без аргументов не запустить?

evle
Ну а как этим значением по-умолчанию пользоваться ...

Эмм. Функцию, которую ты показал, можно запустить без аругментов

evle- Автор вопроса
Pavel Павлик
Эмм. Функцию, которую ты показал, можно запустить ...

Я утверждал, что нельзя? Но вот args передать нельзя, не указав все аргументы с указанными дефлотами перед ним. Это сбивает с толку.

evle- Автор вопроса
Pavel Павлик
Почему сбивает с толку-то?

Тем что при таком порядке теряется смысл значений по-умолчанию у аргументов.

Где тут теряется смысл значений по умолчанию? У тебя любой аргумент в дефолтом может быть не передан, и его значение будет равно дефолту

evle- Автор вопроса
Pavel Павлик
Где тут теряется смысл значений по умолчанию? У те...

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

evle
Хм. Не могу нормально сформулировать, но эта конст...

https://t.me/ru_python/2077192 Опирайся на эту логику и все станет норм

evle- Автор вопроса
Tishka17
https://t.me/ru_python/2077192 Опирайся на эту ло...

В том и дело, что не очень норм. Ну и да, технически там всплывает эта разница между параметрами а аргументами, но она ничего не проясняет. Я понимаю, что противоречий тут не возникает потому что у args есть неявный дефолт, но именно что он неявный.

evle
В том и дело, что не очень норм. Ну и да, техничес...

Нету там дефолта. Это кортеж всего что нашлось

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта