У меня есть инструкция if, которая проверяет словарь из другого модуля, чтобы увидеть, содержит ли оно ключевое слово, которое имеет функцию как свое значение. Функция никогда явно не вызывается, но она выполняется, когда программа инициируется, прежде чем что-либо еще произойдет. Это не желаемое поведение, функция никогда не должна называться. Если ключевое слово находится в словаре, все, что должно произойти, это то, что программа печатает «хорошо» на терминале. Я делаю что-то неправильно? Я обыскивал интернет в течение нескольких часов, и мой мозг болит :(python: вызов функции из словаря в другом модуле
С '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» в самом начале не должно быть там, так как функция никогда не называется ... правильно? Я не могу понять это
О, хорошо, круто. Большое спасибо, это было довольно неприятно O_O – pulsefrequency