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

Другие вопросы по тегам