Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 13, 2017 10:59:59

NotImplemented
Зарегистрирован: 2017-08-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение локального пространства имен с помощью input()

JOHN_16 eval() здесь находит значение, связанное с именем ‘a’ и тупо возвращает его, а не имя переменной. Попробуйте применить eval() в переложении на мой пример четырьмя комментариями выше.
Как бы там ни было, похоже, что умолчания из заголовка функции изменять так или нельзя, или слишком заморочно. Реализовал со словарем-посредником вот так:

  
from collections import OrderedDict
 
def dictDefaults():
   defaults = OrderedDict([('a: ', 11), ('b: ', 22)])
   if input('Использовать значения по умолчанию? д/н ') == 'н':
      for key in defaults:
         defaults[key] = int(input(key))
   else: print('Будут использованы значения по умолчанию.')
   a, b = tuple(defaults.values())
# тут можно что-то делать дальше или передать значения другой функции
Всем спасибо, тема может быть закрыта.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version