Форум сайта python.su
0
Добрый день. Есть такой код:
def first(): print('first') def second(): print('second') def third(): print('third') do = { '1': first(), '2': second(), '3': third() } do['1']
first second third
Отредактировано SomethingButNotNickName (Янв. 10, 2018 12:03:01)
Офлайн
568
SomethingButNotNickName
Потому что вы не видите разницы между функцией как переменной и её вызовом
do = { '1': first(), # Вызвал функцию '2': second(), # Вызвал функцию '3': third(). # Вызвал функцию }
Офлайн
0
FishHook
SomethingButNotNickNameПотому что вы не видите разницы между функцией как переменной и её вызовом
Офлайн
568
SomethingButNotNickName
SomethingButNotNickNameНу если понимаешь, то что ты хочешь получить вот этим?
что в словаре будут None понимаю
do['1']
SomethingButNotNickNameЯ надеялся, что ты сам догадаешься, но раз ты думать головой не хочешь, то вот решение
А не ограничиваться общими фразами не отвечающими на поставленный вопрос.
do = { '1': first, '2': second, '3': third } do['1']()
Офлайн
0
А благодарить то не за что.
SomethingButNotNickName
Вопрос собственно не в том как исправить код для вызова конкретной функции из словаря, а почему его не происходит?.
Офлайн
294
SomethingButNotNickNameпотому что вы его не вызываете, вам же уже обьясняли.
Вопрос собственно не в том как исправить код для вызова конкретной функции из словаря, а почему его не происходит?.
def first(): print('first') a['1'] = first() # вызов функции и присваивание результата работы функции ключу '1' словаря а # оно выведет 'first', но значение в словаре будет None так как функция ничего не возвращает a['1'] = first # ключу '1' словаря а теперь ссылаеться на функцию first # оно ничего не выведет , значение ключа бдет чтото типа такого <function first at 0x02E66660> a['1']() # вызов функции first, оно напечатает 'first'
[code python][/code]
Офлайн