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

Помогите пожалуйста у меня есть функция на проверку есть ли значение

в ключе json
@config_access
def check_is_frequency_occupied(occupied_frequencies, frequency) -> bool:
return frequency in occupied_frequencies

вот код декоратора:
def config_access(func):
def wrapper(frequency):
with open(config_path, "r") as file:
config_data = load(file)

occupied_frequencies = config_data["occupied_frequencies"]
result = func(occupied_frequencies, frequency)

if config_data["occupied_frequencies"] == occupied_frequencies:
return

with open(config_path, "w") as file:
dump(occupied_frequencies, file)

return result

return wrapper

и эта функция при вызове возвращает мне None. Каким образом если я возвращаю ее результат в декораторе и сама функция не может вернуть ничего кроме True или False?

8 ответов

23 просмотра

Вероятно, выполняется строчка с голым return

https://t.me/advice17/47

Проблема в вашем коде возникает из-за отсутствия явного return внутри декоратора config_access. При вызове check_is_frequency_occupied вы получаете None, потому что в конечном итоге функция декоратора wrapper возвращает None. Чтобы исправить это, вам нужно явно вернуть результат выполнения функции func из декоратора wrapper. Вот исправленный код декоратора: python def config_access(func): def wrapper(frequency): with open(config_path, "r") as file: config_data = load(file) occupied_frequencies = config_data["occupied_frequencies"] result = func(occupied_frequencies, frequency) if config_data["occupied_frequencies"] == occupied_frequencies: return result # Вернуть результат выполнения функции with open(config_path, "w") as file: dump(occupied_frequencies, file) return result return wrapper Теперь, когда вызывается функция check_is_frequency_occupied, она будет возвращать ожидаемый результат (`True` или `False`). Так сказал чатжпт

Gorlomi
Проблема в вашем коде возникает из-за отсутствия я...

Зачем джипити, выше ответили же уже. Он присваивает список, потом говорит если равен тому что присвоил то return зачем-то

Сергей
Зачем джипити, выше ответили же уже. Он присваивае...

Я чайник. Просто задал вопрос его чатужпт

Gorlomi
Я чайник. Просто задал вопрос его чатужпт

Не надо так делать, он часто хуйню советует

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта