我有一个 if 语句,它检查来自另一个模块的字典,以查看它是否包含恰好具有函数作为其值的关键字。该函数从未被显式调用,但它在程序启动时执行,甚至在其他任何事情发生之前。这不是期望的行为,该函数永远不应该被实际调用。如果关键字在字典中,那么应该发生的只是程序向终端打印“good”。难道我做错了什么?我已经在网上搜索了几个小时,我的大脑很痛:(
从'source.py':
import commands
game_state = 'playing'
while game_state == 'playing':
player_input = raw_input('>>')
if player_input == 'quit':
break
elif player_input in commands.command_list:
print 'good'
从'commands.py':
def one():
print '1'
command_list = {'one' : one()}
最后,这是输入函数名称后的结果终端:
1
>>one
good
>>_
一开始的'1'不应该在那里,因为该函数实际上从未被调用......对吗?我想不通