Python - len(x) не оценивает параметры?
Я пишу игру, в которой, если пользователь вводит слово, игра использует это слово. В противном случае программа должна выбрать случайное слово из словаря. Словарь - это глобальный список. В настоящее время случайное значение по умолчанию всегда будет иметь значение 0, но правильно оценивается где-либо еще.
Код:
def game(i = random.randint(0, len(dictionary))):
print 'default random:', i
print 'random inside function:', random.randint(0, len(dictionary))
Выход:
default random: 0
random inside function: 40403
Может ли Python не оценить len внутри параметров?
1 ответ
Если вы скажете генератору случайных чисел "выбрать число от 0 до 100", а он выберет 0, это не значит, что случайное число lib сломано. Python оценил утверждение в сигнатуре функции.
Все в приведенном выше коде работает так же, как вы ожидаете. http://dilbert.com/strip/2001-10-25