別のモジュールの辞書をチェックして、たまたま関数を値として持つキーワードが含まれているかどうかを確認する 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」は存在しないはずです...そうですか?私はこれを理解することはできません