Monors Note

Pythonとそれ以外いろいろ

Lesson4-26:Cleaning Up Mc Problem

引数の値に応じて、関数を指定したい時のコードの書き方の話。 下記の様なコードがあった場合、

def mc_problem(start=(3, 3, 1, 0, 0, 0), goal=None):
    if goal == None:
       goal_fn = lambda state: (0, 0, 0) == state[:3]
    else:
       goal_fn = lambda state: goal == state

もしくは、下記の様にdefを用いて内部関数を宣言してもよい。

def mc_problem(start=(3, 3, 1, 0, 0, 0), goal=None):
    if goal == None:
       def goal_fn(state): return (0, 0, 0) == state[:3]
    else:
       def goal_fn(state): return goal == state