【发布时间】:2016-04-17 20:12:35
【问题描述】:
我正在编写一个游戏,如果用户提供一个单词,游戏就会使用该单词。否则,程序应该从字典中随机选择一个单词。字典是一个全局列表。目前,默认随机数将始终评估为 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 内部参数吗?
【问题讨论】:
-
可以,但是你真的应该把应用程序逻辑放在函数里面而不是它的签名中。
-
不,它不能。这是设计使然。默认值是在函数定义时评估的,而不是在函数调用时。
标签: python random parameters zero variable-length